Cod sursa(job #446995)

Utilizator Bogdan_CCebere Bogdan Bogdan_C Data 27 aprilie 2010 11:52:39
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.3 kb
#include<stdio.h>
#include<stdlib.h>
#include<set>
#define FIN "loto.in"
#define FOUT "loto.out"
#define NMAX 102
using namespace std;
set<int> sume;
int numere[NMAX],ss,sd,rez[6],n,s;
 
int main()
{
    freopen(FIN,"r",stdin);
    freopen(FOUT,"w",stdout);
    scanf("%d %d",&n,&s);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&numere[i]);
    }
   
    for(int i = 1 ; i <= n ; i++)
     for(int j = i ; j <= n ; j++)
      for(int k = j ; k <= n; k++)
       sume.insert(numere[i]+numere[j]+numere[k]);
    bool gasit=false;
    for(int i = 1 ;i <= n && !gasit; i++)
     for(int j = i ; j <= n && !gasit; j++)
      for(int k = j ; k <= n && !gasit; k++)
       {
            ss = numere[i] + numere[j] + numere[k];
            sd = s - ss;
            if(sume.find(sd)!=sume.end()) gasit = true, rez[0] = numere [i] , rez[1] = numere [j] , rez[2]= numere[k];
        }    
     if(!gasit) printf("-1\n");
     else 
     {
            for(int i = 1 ; i <= n ; i++)
             for(int j = i ; j <= n ; j++)
              for(int k = j ; k <= n ; k++)
               if(sd == numere[i]+numere[j]+numere[k]) rez[3]=numere[i],rez[4]=numere[j],rez[5]=numere[k]; 
            for(int i=0;i<6;i++) printf("%d ",rez[i]);
            }    
            
    
    return 0;


}