Pagini recente » Cod sursa (job #2541092) | Cod sursa (job #2344824) | Cod sursa (job #1655906) | Cod sursa (job #2530731) | Cod sursa (job #2429916)
#include <vector>
#include <fstream>
#include <unordered_map>
using std::vector;
using std::unordered_map;
std::ifstream fin("oite.in");
std::ofstream fout("oite.out");
int main() {
int n, s;
fin >> n >> s;
vector<int> v(n + 1);
for (int i = 1; i <= n; i++)
fin >> v[i];
vector<unordered_map<int, int>> sums(n + 1);
for (int i = 1; i < n; i++)
for (int j = i + 1; j <= n; j++) {
sums[0][v[i] + v[j]]++;
sums[i][v[i] + v[j]]++;
sums[j][v[i] + v[j]]++;
}
int64_t sol = 0;
for (int i = 1; i < n; i++)
for (int j = i + 1; j <= n; j++) {
int sum = v[i] + v[j];
sol += sums[0][s - sum] - sums[i][s - sum] - sums[j][s - sum] + (sum == s - sum);
}
fout << sol / 6 << '\n';
fout.close();
return 0;
}