Pagini recente » Cod sursa (job #1636113) | Cod sursa (job #2217132) | Cod sursa (job #2518313) | Cod sursa (job #211356) | Cod sursa (job #850088)
Cod sursa(job #850088)
#include <iostream>
#include <fstream>
#include <vector>
#include <tr1/unordered_map>
using namespace std;
ifstream in ("oite.in");
ofstream out ("oite.out");
const int MOD = 6969;
int V[1030];
tr1 :: unordered_map < int, vector < pair <int, int> > > M;
vector <int> Hash[MOD];
int main ()
{
int N, S, i, j, k, now, x, Ans = 0;
in >> N >> S;
for (i = 1; i <= N; i ++)
in >> V[i];
for (i = 1; i <= N; i ++){
for (j = i + 1; j <= N; j ++){
now = S - V[i] - V[j];
if (now < 0)
continue;
x = now % MOD;
if (Hash[x].size ())
for (k = 0; k < Hash[x].size (); ++ k)
if (now == Hash[x][k])
Ans ++;
}
for (j = 1; j < i; j ++)
Hash[ (V[i] + V[j]) % MOD ].push_back (V[i] + V[j]);
}
out << Ans;
return 0;
}