Cod sursa(job #50232)

Utilizator Mishu91Andrei Misarca Mishu91 Data 7 aprilie 2007 10:24:37
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.51 kb
using namespace std;
#include<fstream>

ifstream fin("loto.in");
ofstream fout("loto.out");

long long  v[110];
int n,s;

void verifica(int nr, long long v[110], int sum, int &x)
{
  int i1, i2, i3, i4, i5, i6;
  int ok=1;
  x=0;
  for(i1=1;i1<=nr&&ok;i1++)
    if(v[i1]>s) ok=0;
    else for (i2=1;i2<=nr;i2++)
           if(v[i1]+v[i2]>s) ok=0;
           else for(i3=1;i3<=nr&&ok;i3++)
                  if(v[i1]+v[i2]+v[i3]>s) ok=0;
                  else for(i4=1;i4<=nr&&ok;i4++)
                         if(v[i1]+v[i2]+v[i3]+v[i4]>s) ok=0;
                         else for(i5=1;i5<=nr&&ok;i5++)
                                if(v[i1]+v[i2]+v[i3]+v[i4]+v[i5]>s) ok=0;
                                else for(i6=1;i6<=nr&&ok;i6++)
                                       if(v[i1]+v[i2]+v[i3]+v[i4]+v[i5]+v[i6]==s){x=i1;
                                                                                  fout<<v[i1]<<" "<<v[i2]<<" "<<v[i3]<<" "<<v[i4]<<" "<<v[i5]<<" "<<v[i6];
                                                                                  ok=0;}
                                       else if(v[i1]+v[i2]+v[i3]+v[i4]+v[i5]+v[i6]>s) ok=0;
}


int main()
{
  fin>>n>>s;
  int i,j,x;
  for(i=1;i<=n;i++)  fin>>v[i];
  for(i=1;i<n;i++)
    for(j=i+1;j<=n;j++) if(v[i]>v[j]) {int aux=v[i];
                                       v[i]=v[j];
                                       v[j]=aux;}
  verifica(n,v,s,x);
  if(x==0) fout<<"-1";
  fout<<"\n";
  return 0;
}