Cod sursa(job #1298074)

Utilizator robx12lnLinca Robert robx12ln Data 22 decembrie 2014 15:27:43
Problema Oite Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<fstream>
#include<vector>
#define DIM 1027
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
vector<int>H[DIM];
vector<int>::iterator it;
int v[DIM],n,i,j;
int s,sum,L,nr;
vector<int>::iterator cauta(int x,int p){
    vector<int>::iterator it;
    for(it=H[p].begin() ; it!=H[p].end() ; it++){
        if(x == *it){
            return it;
        }
    }
    return it;
}
int main(){
    fin>>n>>L;
    for(i=1;i<=n;i++){
        fin>>v[i];
    }
    for(i=1;i<n;i++){
        for(j=i+1;j<=n;j++){
            s=v[i]+v[j];
            if(s<L){
                sum=L-s;
                it=cauta(sum,sum%DIM);
                if(it!=H[sum%DIM].end()){
                    nr++;
                }
            }
        }
        for(j=1;j<i;j++){
            s=v[i]+v[j];
            H[s%DIM].push_back(s);
        }
    }
    fout<<nr;
    return 0;
}