Cod sursa(job #898825)

Utilizator roxannemafteiuMafteiu-Scai Roxana roxannemafteiu Data 28 februarie 2013 11:52:54
Problema Loto Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include<stdio.h>
#include<fstream>
#include<algorithm>
FILE *in,*out;
int  n,s,bilet[101],st[6];
using namespace std;
int valid( int k);
void tipar( int k);
void back(int k);
int main()
{
  in=fopen("loto.in","rt");
  out=fopen("loto.out","wt");
  fscanf(in,"%d",&n);
  fscanf(in,"%d",&s);
  for(int i=0;i<n;i++)
   fscanf(in,"%d",&bilet[i]);
   std :: sort (bilet,bilet+n);
   back(0);
   fprintf(out,"-1");
  fclose(in);
  fclose(out);
  return 0;
}
int valid (int k)
{
    int ok=1;
    int suma=0;
    for ( int i=0;i<=k;i++)
        suma=suma+st[i];
    if(suma>s)
      ok=0;
    if(k==5)
      if(suma!=s)
      ok=0;
     if(k>0)
      if(st[k]<st[k-1])
      ok=0;

  return ok;
}
void tipar(int k)
{
   for (int i=0;i<=k;i++)
     fprintf(out,"%d ",st[i]);
     fprintf(out,"\n");
     fclose(in);
     fclose(out);
     exit(0);
}
void  back(int k)
{
    int val;
    for(val=0;val<n;val++)
      {
        st[k]=bilet[val];
        if(valid(k))
         {
             if(k==5)
                tipar(k);
             else
                back(k+1);
         }
      }

}