Cod sursa(job #999516)

Utilizator oprea1si2si3Oprea Sebastian oprea1si2si3 Data 20 septembrie 2013 16:44:01
Problema Oite Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream>
#include<vector>
#define mod 66013
using namespace std;
ifstream in("oite.in");
ofstream out("oite.out");

int n,s,x[1100],sol;
vector<int> v[mod];

int find_value(int x)
{
    int a=0;
    int d = x % mod;
    vector <int> :: iterator it;
    for (it = v[d].begin(); it != v[d].end(); it ++)
        if (*it == x)
            a++;
    return a;
}

inline void insert_value(int x)
{
    int list = x % mod;
    v[list].push_back(x);
}

int main ()
{
int i,j,ret;
in>>n>>s;
for(i=1;i<=n;i++)
    in>>x[i];

for (i=1;i<=n;i++){
  for(j=i+1;j<=n;j++)
        {
            ret = s-x[i]-x[j];
            sol=sol+find_value(ret);
        }
        for (j = 1; j < i; j ++)
           insert_value(x[i] + x[j]);
    }

 out<<sol<<'\n';
 in.close();
 out.close();
 return 0;
}