Pagini recente » Cod sursa (job #213556) | Cod sursa (job #2063710) | Cod sursa (job #2430394) | Cod sursa (job #3192577) | Cod sursa (job #1043541)
#include<fstream>
#define N 2000100
#include<vector>
#define mod 666013
#define nm 1080
using namespace std;
ifstream f("oite.in");
ofstream g("oite.out");
int v[nm],n,sum,i,S,k,mo,j;
long long sol;
vector<pair<int,int> >H[mod];
int main()
{
f>>n>>sum;
for(i=1;i<=n;++i)
f>>v[i];
for(i=1;i<=n;++i)
{
for(j=i+1;j<=n;++j)
{
S=sum-v[i]-v[j];
if(S<0)
continue;
mo=S%mod;
for(k=0;k<H[mo].size();++k)
if(H[mo][k].first==S)
sol+=H[mo][k].second;
}
for(j=1;j<i;++j)
{
S=v[i]+v[j];
if(S>sum)
continue;
mo=S%mod;
for(k=0;k<H[mo].size();++k)
if(H[mo][k].first==S)
{
H[mo][k].second++;
break;
}
if(k==H[mo].size())
H[mo].push_back(make_pair(S,1));
}
}
g<<sol;
return 0;
}