Cod sursa(job #2977307)

Utilizator LukyenDracea Lucian Lukyen Data 11 februarie 2023 12:41:19
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");
map<int, int> mp;

int main()
{
    int n, target;
    fin >> n >> target;
    vector<int> vec(n + 1);

    for (int i = 1; i <= n; i++)
        fin >> vec[i];

    sort(vec.begin() + 1, vec.begin() + n + 1);

    int count = 0;
    for (int i = 1; i < n; i++)
    {
        for (int j = i + 1; j <= n && target - vec[i] - vec[j] >= 0; j++)
        {
            int x = target - vec[i] - vec[j];
            if (mp.find(x) != mp.end())
                count += mp[x];
        }
        for (int j = 1; j < i; j++)
            mp[vec[i] + vec[j]]++;
    }

    fout << count;
    return 0;
}