Cod sursa(job #3188176)

Utilizator SSKMFSS KMF SSKMF Data 2 ianuarie 2024 09:00:47
Problema Oite Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
#include <algorithm>
#include <unordered_map>
using namespace std;

ifstream cin ("oite.in");
ofstream cout ("oite.out");

unordered_map <int , int> aparitii;

int main ()
{
    int lungime , suma;
    cin >> lungime >> suma;

    int termen[1024];
    for (int indice = 0 ; indice < lungime ; indice++)
        { cin >> termen[indice]; }

    sort(termen , termen + lungime);

    long long modalitati = 0;
    for (int indice_1 = 2 ; indice_1 < lungime - 1 ; indice_1++) {
        for (int indice_2 = 0 ; indice_2 < indice_1 - 1 ; indice_2++)
            { aparitii[termen[indice_2] + termen[indice_1 - 1]]++; }
        for (int indice_2 = indice_1 + 1 ; indice_2 < lungime && termen[0] + termen[1] + termen[indice_1] + termen[indice_2] <= suma ; indice_2++)
            { modalitati += aparitii[suma - termen[indice_1] - termen[indice_2]]; }
    }

    cout << modalitati;
    cout.close(); cin.close();
    return 0;
}