Cod sursa(job #1385705)

Utilizator usermeBogdan Cretu userme Data 12 martie 2015 11:39:57
Problema Loto Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.3 kb
#include <cstdio>
#include <unordered_map>

using namespace std;

unordered_map<int,int> has;

FILE*f=fopen("loto.in","r");
FILE*h=fopen("loto.out","w");

int n,s,val[101];

int main(){
    fscanf(f,"%d%d",&n,&s);
    for ( int i=0;i<n;++i ){
        fscanf(f,"%d",&val[i]);
    }
    for ( int i=0;i<n;++i )
        for ( int j=0;j<n;++j )
            for ( int k=0;k<n;++k )
                has[val[i]+val[j]+val[k]]=1;
    for ( int i=0;i<n;++i )
        for ( int j=0;j<n;++j )
            if ( val[i]+val[j]<=s )
            for ( int k=0;k<n;++k ){
                if ( has[s-val[i]-val[j]-val[k]]==1 ){
                    s-=val[i]+val[j]+val[k];
                    fprintf(h,"%d %d %d ",val[i],val[j],val[k]);
                    for ( int i1=0;i1<n;++i1 )
                        if ( val[i1]<=s )
                        for ( int j1=0;j1<n;++j1 ){
                            if ( val[i1]+val[j1]<=s )
                            for ( int k1=0;k1<n;++k1 )
                                if ( val[i1]+val[j1]+val[k1]==s ){
                                    fprintf(h,"%d %d %d",val[i1],val[j1],val[k1]);
                                    return 0;
                                }
                            }
                    return 0;
                }
            }
    fprintf(h,"-1");
    return 0;
}