Cod sursa(job #922368)
#include<fstream>
#include<vector>
#define mod 4013
using namespace std;
ofstream g("oite.out");
int n,i,j;
unsigned long m,a[1025],s,x,sol;
vector<unsigned long> h[mod+2];
int cauta(int x)
{
int nr=0, val=x%mod;
for(int l=0;l<h[val].size();++l)
if(h[val][l]==x)
++sol;
}
int main()
{
ifstream f("oite.in");
f>>n>>m;
for(i=1;i<=n;++i)
f>>a[i];
sol=0;
for(i=1;i<n;++i)
{
for(j=i+1;j<=n;++j)
{
s=a[i]+a[j];
if(s>0)
cauta(m-s);
}
for(j=1;j<i;++j)
{
s=(a[i]+a[j]);
h[s%mod].push_back(s);
}
}
g<<sol;
return 0;
}