Cod sursa(job #2545177)

Utilizator AlexPascu007Pascu Ionut Alexandru AlexPascu007 Data 12 februarie 2020 21:19:35
Problema Loto Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n,s,i,j,k,a,b,c,v[110],sp;
unordered_map<int,int> m;
unordered_map<int, tuple<int,int,int> > t;
int main() {
    fin>>n>>s;
    for (i=1;i<=n;i++)
        fin>>v[i];
    sort(v+1,v+n+1);
    if (s>6*v[n]||s<6*v[1]) {
        fout<<"-1";
        return 0;
    }
    for (i=1;i<=n;i++) {
        for (j=i;j<=n;j++) {
            for (k=j;k<=n;k++) {
                m[v[i]+v[j]+v[k]]=1;
                t[v[i]+v[j]+v[k]]=make_tuple(i,j,k);
            }
        }
    }
    for (i=1;i<=n;i++)
        for (j=i;j<=n;j++)
            for (k=j;k<=n;k++) {
                sp=v[i]+v[j]+v[k];
                if (s-sp>=0) {
                    if (m[s-sp]==1) {
                        tie(a,b,c)=t[s-sp];
                        fout<<v[a]<<" "<<v[b]<<" "<<v[c]<<" "<<v[i]<<" "<<v[j]<<" "<<v[k];
                        return 0;
                    }
                }
            }
    fout<<"-1";
    return 0;
}