Pagini recente » Cod sursa (job #2691742) | Cod sursa (job #1598272) | Cod sursa (job #1458958) | Cod sursa (job #613602) | Cod sursa (job #2217176)
#pragma GCC optimize("03")
#include <bits/stdc++.h>
using namespace std;
long long ans;
int n, l, a[1100];
unordered_map <int,int> M; //perechi cate 2
int main(){
freopen("oite.in", "r", stdin);
freopen("oite.out", "w", stdout);
scanf("%d%d", &n, &l);
for (int i=1; i<=n; i++) scanf("%d", &a[i]);
M.reserve(n*(n-1)/2 + 10);
sort(a+1, a+1+n);
for (int i=3; i<n; i++){
for (int j=1; j<i-1; j++) M[a[i-1] + a[j]]++;
for (int j=i+1; j<=n; j++)
if (l - a[i] - a[j] >= 0) ans += M[l - a[i] - a[j]];
}
cout << ans;
return 0;
}