Cod sursa(job #2402269)

Utilizator CezarTDTodirisca Cezar CezarTD Data 10 aprilie 2019 15:37:41
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("loto.in");
ofstream fout("loto.out");

map< int, tuple<int,int,int> >m;

int main()
{
    int n,S,v[101];
    fin>>n>>S;
    for(int i=1;i<=n;i++)fin>>v[i];
    sort(v+1,v+n+1);
    if(6*v[n]<S){
        fout<<-1;
        return 0;
    }else{
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                for(int k=1;k<=n;k++)m[v[i]+v[j]+v[k]]=make_tuple(i,j,k);
        for(auto& kv:m)
        {
            int a=kv.first;
            auto c= m.find(S-a);
            if(c!=m.end())
            {
                int x,y,z;
                vector<int>p;
                tie(x,y,z)=kv.second;
                p.push_back(x);
                p.push_back(y);
                p.push_back(z);
                tie(x,y,z)=c->second;
                p.push_back(x);
                p.push_back(y);
                p.push_back(z);
                sort(p.begin(),p.end());
                for(auto vec:p)fout<<vec<<' ';
                return 0;

            }
        }
    }
    fout<<-1;
    return 0;
}