Cod sursa(job #1371815)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 4 martie 2015 08:53:48
Problema Oite Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include  <vector>
#define MOD  99017
#define DIM 100000
using namespace std;

ifstream fin ("oite.in" );
ofstream fout("oite.out");

int N, M, L, S, i, j, V[DIM], nr;
vector <int> Hash[DIM];

void SetUp(){
     fin >> N >> L;
     for(i = 1; i <= N; i ++)
          fin >> V[i];
     return;
}

void Cauta(int val, int line){
     vector<int>::iterator it;
     for(it = Hash[line].begin(); it != Hash[line].end(); it ++){
          if(val == *it) nr ++;
     }
     return;
}

void Hashing(){
     for(i = 1; i < N; i ++){
          for(j = i + 1; j <= N; j ++){
               S = L - V[i] - V[j];
               if(S < 0) continue;
               Cauta(S, S%MOD);
          }
          for(j = 1; j < i; j ++){
               S = V[i] + V[j];
               Hash[S%MOD].push_back(S);
          }
     }
     fout << nr;
     return;
}

int main(){
     SetUp();
     Hashing();
     return 0;
}