Cod sursa(job #2290627)

Utilizator sabinpocrisSabin P sabinpocris Data 26 noiembrie 2018 19:15:53
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.42 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
const int MOD = 100003;
int n,m,s,x[101];
vector<tuple<int,int,int>>H[MOD];
int main()
{

    f>>n>>s;
    for(int i=0; i<n; i++)
        f>>x[i];
    for(int i=0; i<n; i++)
        for(int j=i; j<n; j++)
            for(int k=j; k<n; k++)
            {

                int val=x[i]+x[j]+x[k];
                if(val<=s)
                {
                    vector<tuple<int,int,int>> ::iterator it;
                    int rest = val % MOD;
                    for(it = H[rest].begin(); it!=H[rest].end(); it++)
                    {
                        int A,B,C;
                        tie(A,B,C)=*it;
                        if(A+B+C==x[i]+x[j]+x[k])
                            break;
                    }
                    if(it==H[rest].end())
                        H[rest].push_back(make_tuple(x[i],x[j],x[k]));


                    rest = (s-val)%MOD;
                    for(it = H[rest].begin(); it!=H[rest].end(); it++)
                    {
                        int A,B,C;
                        tie(A,B,C)=*it;
                        if(A+B+C+x[i]+x[j]+x[k]==s)
                        {
                            g<<A<<' '<<B<<' '<<C<<' '<<x[i]<<' '<<x[j]<<' '<<x[k]<<'\n';
                            return 0;
                        }
                    }
                }
            }
    g<<"-1\n";
    return 0;
}