Pagini recente » Cod sursa (job #978686) | Cod sursa (job #1430922) | Cod sursa (job #2605539) | Cod sursa (job #1071273) | Cod sursa (job #2580624)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1030;
int N, L, M;
int v[NMAX];
long long ans;
unordered_map <int, vector <pair <int, int> > > hmap;
void read(){
scanf("%d%lld", &N, &L);
for(int i = 1; i <= N; i++)
scanf("%d", &v[i]);
}
int main(){
freopen("oite.in", "r", stdin);
freopen("oite.out", "w", stdout);
read();
for(int i = 1; i <= N; i++)
for(int j = i + 1; j <= N; j++)
hmap[v[i] + v[j]].push_back(make_pair(i, j));
for(int i = 1; i <= N; i++)
for(int j = i + 1; j <= N; j++){
int sum = v[i] + v[j];
if(L - sum < 0) continue;
if(hmap[L - sum].size()){
pair <int, int> x;
for(int k = 0; k < hmap[L - sum].size(); k++){
x = hmap[L - sum][k];
if(x.first < i && x.first < j && x.second < i && x.second < j)
ans++;
}
}
}
printf("%lld", ans);
return 0;
}