Pagini recente » Cod sursa (job #3320493) | Cod sursa (job #3330334) | Cod sursa (job #3325758) | Cod sursa (job #3325102) | Cod sursa (job #3317917)
#include <bits/stdc++.h>
using namespace std;
ifstream f("oite.in");
ofstream g("oite.out");
const int mod = 900007;
int c, l, a[1030], ans = 0;
vector<pair<int, int>> v[900010];
void Add (int x, int y) {
int val = (a[x] + a[y]) % mod;
v[val].push_back (make_pair(x, y));
}
void Find_comp (int x, int y) {
int val = (l - a[x] - a[y] + mod) % mod;
for (int i=0; i<v[val].size(); ++i)
if (a[x] + a[y] + a[v[val][i].first] + a[v[val][i].second] == l
&& y < v[val][i].first)
++ans;
}
int main()
{
f >> c >> l;
for (int i=1; i<=c; ++i)
f >> a[i];
for (int i=1; i<=c; ++i)
for (int j=i+1; j<=c; ++j)
Add (i, j);
for (int i=1; i<=c; ++i)
for (int j=i+1; j<=c; ++j) {
Find_comp (i, j);
}
g << ans;
return 0;
}