Cod sursa(job #2217178)

Utilizator Constantin.Dragancea Constantin Constantin. Data 29 iunie 2018 13:47:57
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#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;
}