Advertisement
Guest User

Untitled

a guest
Sep 15th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. #include "bits/stdc++.h"
  2. using namespace std;
  3.  
  4. int main(){
  5.     #define int long long int
  6.     int sizeSet, lo, hi, aux, cont=0;
  7.     scanf("%lld",&sizeSet);
  8.     scanf("%lld",&lo);
  9.     scanf("%lld",&hi);
  10.     if(lo>hi)swap(lo,hi);
  11.     vector<int>set(0);
  12.     vector<int>setF(1,0);
  13.     vector<int>setS(1,0);
  14.     vector<int>setSumF(1,0);
  15.     vector<int>setSumS(1,0);
  16.     vector<int>::iterator low, high;
  17.     for(int i=0;i<sizeSet;i++){
  18.         scanf("%lld",&aux);
  19.         set.push_back(aux);
  20.     }
  21.     for(int i=0;i<sizeSet/2;i++){
  22.         setF.push_back(set[i]);
  23.     }
  24.     for(int i=sizeSet/2;i<sizeSet;i++){
  25.         setS.push_back(set[i]);
  26.     }
  27.     for(int i=0;i<setF.size();i++){
  28.         for(int j=i+1;j<setF.size();j++){
  29.             setSumF.push_back(setF[i]+setF[j]);
  30.         }
  31.     }
  32.     /*for(int i=0;i<setSumF.size();i++){
  33.         cout<<setSumF[i]<<" ";
  34.     }
  35.     //cout<<"\n";
  36.     for(int i=0;i<setSumS.size();i++){
  37.         cout<<setSumS[i]<<" ";
  38.     }
  39.     //cout<<"\n";*/
  40.     for(int i=0;i<setS.size();i++){
  41.         for(int j=i+1;j<setS.size();j++){
  42.             setSumS.push_back(setS[i]+setS[j]);
  43.         }
  44.     }
  45.     sort(setSumS.begin(),setSumS.end());
  46.     for(int i=0;i<setSumF.size();i++){
  47.         //cout<<"Passei por aqui\n";
  48.         low = lower_bound(setSumS.begin(),setSumS.end(),lo-setSumF[i]);
  49.         high = upper_bound(setSumS.begin(),setSumS.end(),hi-setSumF[i]);
  50.         cont+=(high-low);
  51.         //cout<<cont<<"\n";
  52.     }
  53.     cout<<cont<<"\n";
  54.     return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement