Pagini recente » Cod sursa (job #2554860) | Cod sursa (job #2840227) | Cod sursa (job #654515) | Cod sursa (job #2033022) | Cod sursa (job #1807319)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("oite.in");
ofstream fout ("oite.out");
const int N = 1030, mod = 666013;
struct grupa{
unsigned int x, i, j;
} a[N * N];
unsigned int n, s, v[N], i, j, nr, k, d, aux, aux2;
vector<grupa> b[mod];
int main() {
fin >> n >> s;
for (i = 1; i <= n; ++i) {
fin >> v[i];
}
for (i = 1; i < n; ++i) {
for (j = i + 1; j <= n; ++j) {
k++;
a[k].x = v[i] + v[j];
a[k].i = i;
a[k].j = j;
}
}
for (i = 1; i <= k; ++i) {
d = s - a[i].x;
aux = d % mod;
aux2 = b[aux].size();
for (j = 0; j < aux2; ++j) {
if (b[aux][j].x == d && (b[aux][j].j < a[i].i || a[i].j < b[aux][j].i) )
nr++;
}
b[a[i].x % mod].push_back(a[i]);
}
fout << nr;
return 0;
}