Cod sursa(job #2260434)

Utilizator armigheGheorghe Liviu Armand armighe Data 14 octombrie 2018 23:14:39
Problema Oite Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<cstdio>
#include<fstream>
#include<algorithm>
#include<vector>
#define MOD 666013
using namespace std;
FILE *f=fopen("oite.in","r");
ofstream g("oite.out");
int v[1030];
vector<int>h[666015];

void adauga(int x)
{
    int y;
    y=x%MOD;
    h[y].push_back(x);
}

int cauta(int x)
{
    int y,i,n,k=0;
    y=x%MOD;
    n=h[y].size();
    for(i=0;i<n;i++)
    if(h[y][i]==x)
        k++;
    return k;
}

int main()
{
    int n,l,c,d,k=0,i;
    fscanf(f,"%d%d",&n,&l);
    for(i=1;i<=n;i++)
        fscanf(f,"%d",&v[i]);
    sort(v+1,v+n+1);
    for(c=1;c<=n;c++)
    {
        for(d=c+1;d<=n;d++)
        if(l-v[c]-v[d]>=0)
            k+=cauta(l-v[c]-v[d]);
        for(i=1;i<c;i++)
            adauga(v[i]+v[c]);
    }
    g<<k;
    return 0;
}