Cod sursa(job #2273737)

Utilizator NOSCOPEPROKENDYMACHEAMACUMVREAU NOSCOPEPROKENDY Data 31 octombrie 2018 21:19:32
Problema Oite Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 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;

}