Cod sursa(job #2140116)

Utilizator rares96cheseliRares Cheseli rares96cheseli Data 23 februarie 2018 00:38:43
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

#define NMAX 1030

using namespace std;

int main() {
    freopen("oite.in", "r", stdin);
    freopen("oite.out", "w", stdout);

    vector <int> a;
    int N, L, sol = 0;
    unordered_map <int, int> H;

    cin >> N >> L;
    a.resize(N);

    for (auto &it : a) {
        cin >> it;
    }
    sort(a.begin(), a.end());

    for (int i = 2; i < (int)a.size(); ++i) {
        for (int j = i - 2; j >= 0; --j) {
            ++H[a[i - 1] + a[j]];
        }

        for (int j = i + 1; j < (int)a.size(); ++j) {
            if (H.find(L - a[i] - a[j]) != H.end()) {
                sol += H[L - a[j] - a[i]];
            }
        }
    }

    cout << sol << '\n';
    return 0;
}