Pagini recente » Cod sursa (job #1682042) | Cod sursa (job #2566514) | Cod sursa (job #2493089) | die_hard | Cod sursa (job #2823114)
#include <fstream>
#include <algorithm>
#include <unordered_map>
const int MAX_N = (1 << 10);
int a[1 + MAX_N];
std::unordered_map<int, int> mp;
int main() {
std::ifstream fin("oite.in");
std::ofstream fout("oite.out");
int n, l;
fin >> n >> l;
for (int i = 1; i <= n; i++) {
fin >> a[i];
}
std::sort(a + 1, a + n + 1);
long long answer = 0;
for (int i = 1; i < n; i++) {
for (int j = i + 1; j <= n && l - a[i] - a[j] >= 0; j++) {
if (mp.find(l - a[i] - a[j]) != mp.end()) {
answer += mp[l - a[i] - a[j]];
}
}
for (int j = 1; j < i; j++) {
mp[a[i] + a[j]]++;
}
}
fout << answer;
return 0;
}