Pagini recente » Cod sursa (job #1314104) | Cod sursa (job #501927) | Cod sursa (job #682485) | Cod sursa (job #661517) | Cod sursa (job #2216956)
#include <bits/stdc++.h>
using namespace std;
ifstream in("oite.in");
ofstream out("oite.out");
int n, L, a[2000];
map <int, int> pairs, mp[1048];
long long ans;
int main(){
in >> n >> L;
for(int i = 1; i <= n; i++)
in >> a[i];
// pairs.reserve(1024 * 1024 + 123);
// for(int i = 1; i <= n; i++)
// mp[i].reserve(n + 23);
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
if(i == j)
continue;
mp[i][a[i] + a[j]]++;
if(j > i)
pairs[a[i] + a[j]]++;
}
}
for(int i = 1; i < n; i++){
for(int j = i + 1; j <= n; j++){
int sum = a[i] + a[j];
if(L - sum < 0)
continue;
ans += pairs[L - sum] - mp[i][L - sum] - mp[j][L - sum] + (sum == L - sum);
}
}
out << ans / 6;
return 0;
}