Cod sursa(job #923271)

Utilizator VisuianMihaiMihai Visuian VisuianMihai Data 23 martie 2013 13:06:48
Problema Oite Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<fstream>
#include<vector>
#define mod 4013
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
int i,j,n,a[1025],nrsol;
long long l;
vector<long long>h[mod+1];
void Cauta(long long x)
{
    int nod=x%mod;
    for(vector<long long>::iterator it=h[nod].begin(); it<h[nod].end(); it++ )
        if (*it==x) ++nrsol;
}
int main()
{
    fin>>n>>l;
    for(i=1;i<=n;++i)
        fin>>a[i];
    for(i=1;i<n;++i)
    {
        for(j=i+1;j<=n;++j)
            if(l-a[i]-a[j]>=0)
                Cauta(l-a[i]-a[j]);
        for(j=1;j<i;++j)
        {
            int x=(a[i]+a[j])%mod;
            h[x].push_back(a[i]+a[j]);
        }
    }
    fout<<nrsol;
    return 0;
}