Cod sursa(job #1783890)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 19 octombrie 2016 16:13:34
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <bits/stdc++.h>
#define Xp (1<<13)
using namespace std;
ifstream f("oite.in");
ofstream g("oite.out");
int C,L,i,j,sol,v[1<<11];
vector <int> H[Xp];
int main()
{
    f>>C>>L;
    for(i=1;i<=C;++i) f>>v[i];
    for(i=1;i<C;++i)
    {
        for(j=i+1;j<=C;++j)
            if(L-v[i]-v[j]>0)
            {
                int line=(L-v[i]-v[j])&(Xp-1);
                for(int k=0;k<H[line].size();++k)
                    sol+=(H[line][k]==L-v[i]-v[j]);
            }
        for(j=1;j<i;++j)
            H[(v[i]+v[j])&(Xp-1)].push_back(v[i]+v[j]);
    }
    g<<sol;
    return 0;
}