Pagini recente » Cod sursa (job #1111126) | Cod sursa (job #993274) | Cod sursa (job #1343759) | Istoria paginii runda/speed3/clasament | Cod sursa (job #496571)
Cod sursa(job #496571)
# include <fstream>
# include <iostream>
# include <vector>
# include <algorithm>
# define DIM 1099
# define H 199999
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];
long long sol;
vector<nod> h[H+666];
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];
if (nr>=0)
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)
++sol;
}
}
int main ()
{
read ();
solve ();
ofstream fout ("oite.out");
fout<<sol;
return 0;
}