Cod sursa(job #2795158)

Utilizator VladPislaruPislaru Vlad Rares VladPislaru Data 6 noiembrie 2021 00:35:46
Problema Oite Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin ("oite.in");
ofstream fout ("oite.out");


int n , S;
int a[1100];

unordered_map <int ,int> fr;


/**

10 38
13 1 12 10 8 10 1 12 9 1


1 1 1 8 9 10 10 12 12 13

*/

int main()
{
    fin >> n >> S;
    for (int i = 1; i <= n; i++)
        fin >> a[i];
    sort (a + 1, a + n + 1);
    int cnt = 0;
    for (int i = 1; i < n; i++)
    {
        for (int j = i + 1; j <= n; j++)
        {
            if (fr.find (S - a[i] - a[j]) != fr.end ())
                cnt += fr[S - a[i] - a[j]];
        }
        for (int j = i - 1; j > 0; j--)
            fr[a[i] + a[j]]++;
    }
    fout << cnt << "\n";

    return 0;
}