Cod sursa(job #1218415)

Utilizator rangerChihai Mihai ranger Data 10 august 2014 23:07:29
Problema Oite Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream cin("oite.in");
ofstream cout("oite.out");

const int P = 7919;
long long n,l,i,j,a[1050],res=0;
vector< pair<long,long> > v[P];

int main()
{
    cin>>n>>l;
    for (i=1;i<=n;i++) cin>>a[i];
    for (i=1;i<n;i++)
        for (j=i+1;j<=n;j++)
          v[(a[i]+a[j])%P].push_back(make_pair(a[i]+a[j],i));
    for (i=1;i<n;i++)
    for (j=i+1;j<=n;j++) {
        int x = (l - a[i] - a[j]), y=x % P;
        if (x<0) continue;
        for (int k=0;k<v[y].size();k++)
            if (v[y][k].first==x && j<v[y][k].second)
                  ++res;
    }
    cout<<res;
    return 0;
}