Cod sursa(job #1783884)

Utilizator enedumitruene dumitru enedumitru Data 19 octombrie 2016 16:09:47
Problema Oite Scor 100
Compilator cpp Status done
Runda hash_excelenta Marime 0.61 kb
#include <bits/stdc++.h>
#define Xp (1<<12)
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;
}