Cod sursa(job #2744631)

Utilizator vlad_dimaVlad Dima vlad_dima Data 24 aprilie 2021 21:57:28
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.46 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct item
{
    int a, b, c;   ///un tuplu pe post de valoare la map(primele 2 numere din care se obtine suma)
};
unordered_map <int, item> hs;  ///suma si tuplul
vector <int> v;/// pentru a memora vle
int n, s, ok = 0;///ok - devine 1 cand gasesc o solutie
int main()
{
    fin>>n>>s;
    for (int i = 0; i < n; i++)
    {
        int x;
        fin>>x;
        v.push_back(x);
    }
    fin.close();

    for (int i = 0; i < v.size(); i++)
        for (int j = i; j < v.size(); j++)
            for (int l = j; l < v.size(); l++)
                {
//                    cout<<v[i]<<' '<<v[j]<<' '<<v[l]<<endl;
                    int sum = v[i] + v[j] + v[l];
                    if (s > sum && hs.find(s-sum) != hs.end())
                    {
                        fout<<v[i]<<' '<<v[j]<<' '<<v[l]<<' ';
                        fout<<hs[s-sum].a<<' '<<hs[s-sum].b<<' '<<hs[s-sum].c;
                        ok = 1;
                        i = j = l = v.size() + 1;
                    }
                    else if (s > sum)
                    {
                        item tup;
                        tup.a = v[i];
                        tup.b = v[j];
                        tup.c = v[l];
                        hs[sum] = tup;
                    }
                }
    if (!ok)
    {
        fout<<-1;
    }
    fout.close();
}