Cod sursa(job #1715308)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 10 iunie 2016 12:03:56
Problema Oite Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

constexpr int MAX_N = 1024;

int A[MAX_N];
int N, L;

int main()
{
    ifstream in("oite.in");
    ofstream out("oite.out");

    in >> N >> L;

    for (int i = 1; i <= N; ++i)
        in >> A[i];

    unordered_map<int,int> HashTable;
    HashTable.reserve(4096);
    HashTable.max_load_factor(0.5);

    long long solutions = 0;

    for (int i = 1; i <= N; ++i)
    {
        for (int j = i + 1; j <= N; ++j)
            if (L - A[i] + A[j] > 0)
                solutions += HashTable[ L - A[i] - A[j] ];

        for (int j = 1; j < i; ++j)
            ++HashTable[ A[i] + A[j] ];
    }

    out << solutions << endl;

    return 0;
}