Cod sursa(job #2811147)

Utilizator UnknownPercentageBuca Mihnea-Vicentiu UnknownPercentage Data 1 decembrie 2021 13:17:40
Problema Oite Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;

inline void Open(const string Name) {
    #ifndef ONLINE_JUDGE
        (void)!freopen((Name + ".in").c_str(), "r", stdin);
        (void)!freopen((Name + ".out").c_str(), "w", stdout);
    #endif
}

unordered_map <int, int> H;

int a[2001];
int N, G;

long long ans;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    Open("oite");

    cin >> N >> G;
    for(int i = 1;i <= N;i++)
        cin >> a[i];

    sort(a + 1, a + N + 1);
    for(int i = 1;i <= N;i++) {
        for(int j = i + 1;j <= N;j++) {
            if(G - a[i] - a[j] < 0)
                break;

            if(H.count(G - a[i] - a[j]) > 0)
                ans += H[G - a[i] - a[j]];
        }

        for(int j = 1;j < i;j++)
            H[a[i] + a[j]]++;
    }

    cout << ans;

    return 0;
}