Pagini recente » Cod sursa (job #3223324) | Cod sursa (job #2975360) | Cod sursa (job #1039367)
#include<fstream>
#include<vector>
#define MOD 666013
using namespace std;
int a[1025][1025],l,n,t[1025];
long long sol;
vector<pair<short,short> > v[MOD+1];
ifstream fin("oite.in");
ofstream fout("oite.out");
void citire()
{
fin>>n>>l;
for(int i=1;i<=n;i++)
{
fin>>t[i];
}
}
void sume()
{
int s;
for(int i=1;i<n;i++)
{
for(int j=i+1;j<=n;j++)
{
s=t[i]+t[j];
v[s%MOD].push_back(make_pair(i,j));
a[i][j]=s;
a[j][i]=s;
}
}
}
void rezolva()
{
pair<int, int> p;
int s;
for(int i=1;i<n;i++)
{
for(int j=i+1;j<=n;j++)
{
s=l-a[i][j];
for(int k=0;k<v[s%MOD].size();k++)
{
p=v[s%MOD][k];
if(a[p.first][p.second]==s && j<p.first)
{
sol++;
}
}
}
}
}
int main()
{
citire();
sume();
rezolva();
fout<<sol;
return 0;
}