Pagini recente » Cod sursa (job #263064) | Cod sursa (job #1007223) | Cod sursa (job #1506099) | Cod sursa (job #1706631) | Cod sursa (job #496557)
Cod sursa(job #496557)
# include <fstream>
# include <iostream>
# include <vector>
# include <algorithm>
# define DIM 3000
# define H 1000000
using namespace std;
struct nod{
short int a, b;
nod(){}
nod(short int A, short int B){
a=A;b=B;}
};
int n, S, v[DIM], sol;
vector<nod> h[H+3];
void read ()
{
ifstream fin ("oite.in");
fin>>n>>S;
for(int i=1;i<=n;++i)
fin>>v[i];
}
void solve ()
{
int nr;
for (int i=1;i<n;++i)
for(int j=i+1;j<=n;++j)
{
nr=v[i]+v[j];
h[nr%H].push_back(nod(i,j));
}
for (int i=1;i<n;++i)
for(int j=i+1;j<=n;++j)
{
nr=S-v[i]-v[j];
for(vector<nod>::iterator I=h[nr%H].begin();I<h[nr%H].end();++I)
if (I->a>j && v[I->a]+v[I->b]==nr && I->a!=i && I->a!=j && I->b!=i && I->b!=j)
++sol;
}
}
int main ()
{
read ();
solve ();
ofstream fout ("oite.out");
fout<<sol;
return 0;
}