Cod sursa(job #3308801)

Utilizator Radu_GrigorieGrigorie Radu Stefan Radu_Grigorie Data 28 august 2025 12:26:54
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.59 kb
#include <fstream>
#include <unordered_map>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int v[105];
unordered_map<int, bool> m;
int sol[6];
int main()
{
    int n, s, a, b;
    fin >> n >> s;
    for(int i=1; i<=n; i++)
    {
        fin >> v[i];
    }
    int p=0;
    for(int i1=1; i1<=n; i1++)
    {
        for(int i2=1; i2<=n; i2++)
        {
            for(int i3=1; i3<=n; i3++)
            {
                if(m[s-(v[i1]+v[i2]+v[i3])]==1) {a=v[i1]+v[i2]+v[i3]; b=s-(v[i1]+v[i2]+v[i3]); break;}
                m[v[i1]+v[i2]+v[i3]]=1;
            }
        }
    }
    bool ok1, ok2;
    ok1=ok2=0;
    for(int i1=1; i1<=n; i1++)
    {
        for(int i2=1; i2<=n; i2++)
        {
            for(int i3=1; i3<=n; i3++)
            {
                if(v[i1]+v[i2]+v[i3]==a&&ok1==0)
                {
                    ok1 = 1;
                    sol[1] = v[i1];
                    sol[2] = v[i2];
                    sol[3] = v[i3];
                }
                else if(v[i1]+v[i2]+v[i3]==b&&ok2==0)
                {
                    ok2 = 1;
                    sol[4] = v[i1];
                    sol[5] = v[i2];
                    sol[6] = v[i3];
                }
                if(ok1==1&&ok2==1)
                {
                    sort(sol+1, sol+7);
                    fout << sol[1] << " " << sol[2] << " " << sol[3] << " " << sol[4] << " " << sol[5] << " " << sol[6];
                    return 0;
                }
            }
        }
    }
    fout << -1;
    return 0;
}