Pagini recente » Cod sursa (job #2209827) | Cod sursa (job #331960) | Cod sursa (job #2822726) | Cod sursa (job #530254) | Cod sursa (job #2846382)
#include <stdio.h>
#include <vector>
using namespace std;
const int NMAX = 1024, MOD = 393241;
int v[NMAX + 1];
vector <pair <int, int> > r[MOD];
int main()
{
FILE *fin = fopen("oite.in", "r");
FILE *fout = fopen("oite.out", "w");
int n, s, i, j;
fscanf(fin, "%d %d\n", &n, &s);
for (i = 1; i <= n; i++)
fscanf(fin, "%d ", &v[i]);
int ans = 0;
for (i = 1; i + 1 <= n; ++i)
for (j = i + 1; j <= n; ++j)
{
int sum = v[i] + v[j];
r[sum % MOD].push_back({v[i] + v[j], j});
int need = s - sum;
if (need < 0)
continue;
int val = need % MOD;
for (int k = 0; k < r[val].size(); ++k)
if (r[val][k].first == need and r[val][k].second < i)
ans++;
}
fprintf(fout, "%d", ans);
}