Cod sursa(job #2866605)

Utilizator e_ggIonescu Dorian e_gg Data 9 martie 2022 20:31:01
Problema Loto Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.29 kb
#include<iostream>
#include<fstream>
#include<unordered_map>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
struct val{
    int a,b,c;
};
unordered_map<int,val> ht;
int v[102],sol[6];
int main()
{
    int n,s,curSum,done;
    f>>n>>s;
    for(int i=1;i<=n;i++)
        f>>v[i];
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            for(int k=1;k<=n;k++){
                curSum=v[i]+v[j]+v[k];
                ht[curSum].a=v[i];
                ht[curSum].b=v[j];
                ht[curSum].c=v[k];
            }
    done=0;
    unordered_map<int,val>::const_iterator it;
    for(int i=1;i<=n&&!done;i++)
        for(int j=1;j<=n&&!done;j++)
            for(int k=1;k<=n&&!done;k++){
                curSum=v[i]+v[j]+v[k];
                it=ht.find(s-curSum);
                if(it!=ht.end()){
                    sol[0]=v[i];
                    sol[1]=v[j];
                    sol[2]=v[k];
                    sol[3]=it->second.a;
                    sol[4]=it->second.b;
                    sol[5]=it->second.c;
                    done=1;
                }
            }
    if(!done)
        g<<-1;
    else
        for(int i=0;i<6;i++)
            g<<sol[i]<<' ';
    g<<'\n';
    f.close();
    g.close();
    return 0;
}