Cod sursa(job #2299936)

Utilizator verde.cristian2005Verde Flaviu-Cristian verde.cristian2005 Data 10 decembrie 2018 16:26:22
Problema Loto Scor 45
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
const int MOD=666013;
vector <int> ceva[MOD];
int v[1000001],a[101];
bool verif(int poz,int val)
{
    for(int i=0; i<ceva[poz].size(); i++)
        if(ceva[poz][i]==val)
            return 1;
    return 0;
}
int main()
{
    int n,s,i,j,l,x=-1,cnt=0,cnt1=0;
    in>>n>>s;
    for(i=1; i<=n; i++)
        in>>a[i];
    for(i=1; i<=n; i++)
        for(j=i; j<=n; j++)
            for(l=j; l<=n; l++)
                if(!verif((a[i]+a[j]+a[l])%MOD,a[i]+a[j]+a[l]))
                    ceva[(a[i]+a[j]+a[l])%MOD].push_back(a[i]+a[j]+a[l]);
    for(i=1; i<=n; i++)
        for(j=i; j<=n; j++)
            for(l=j; l<=n; l++)
                if(verif((s-(a[i]+a[j]+a[l])+MOD)%MOD,s-(a[i]+a[j]+a[l])))
                {x=s-a[i]-a[j]-a[l];break;}
    if(x==-1)
    {
     out<<"-1";
     return 0;
    }
    for(i=1; i<=n&&cnt+cnt1<2; i++)
        for(j=i; j<=n&&cnt+cnt1<2; j++)
            for(l=j; l<=n&&cnt+cnt1<2; l++)
            if(a[i]+a[j]+a[l]==x&&cnt==0)
            {cnt=1;
            out<<a[i]<<" "<<a[j]<<" "<<a[l]<<" ";}
            else if(a[i]+a[j]+a[l]==s-x&&cnt1==0)
            {
             cnt1=1;
             out<<a[i]<<" "<<a[j]<<" "<<a[l]<<" ";
            }

    return 0;
}