Cod sursa(job #2290617)

Utilizator sabinpocrisSabin P sabinpocris Data 26 noiembrie 2018 19:03:58
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.51 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)
                    {

                        int rest = (s-val)%MOD;
                        vector<tuple<int,int,int>> ::iterator it;
                        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;
                            }
                        }
                        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]));


                    }
            }
    g<<"-1\n";
    return 0;
}