Pagini recente » Cod sursa (job #2768272) | Cod sursa (job #2689501) | Cod sursa (job #2862701) | Cod sursa (job #148983) | Cod sursa (job #1939322)
#include <fstream>
#include <vector>
#define DIM 997216
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
int n,s,i,j,k,nr,ok,v[1030],x,y,sol,t;
vector < pair <int, int> > H[DIM];
int main()
{
fin >> n >> s;
for (i=1; i<=n; i++)
fin >> v[i];
H[(v[1]+v[2])%DIM].push_back (make_pair(v[1]+v[2], 1));
for (i=3; i<n; i++)
{
for (j=i+1; j<=n; j++)
{
x = s-v[i]-v[j];
t = x%DIM;
y = H[t].size();
nr = 0;
for (k=0; k<y; k++)
if (H[t][k].first+v[i]+v[j] == s)
{
sol += H[t][k].second;
break;
}
}
for (j=i-1; j>=1; j--)
{
x = v[i]+v[j];
t = x%DIM;
y = H[t].size();
ok = 0;
for (k=0; k<y; k++)
if (H[t][k].first == x)
{
H[t][k].second++;
ok = 1;
break;
}
if (ok == 0)
H[t].push_back (make_pair(x,1));
}
}
fout << sol;
return 0;
}