Pagini recente » Cod sursa (job #3151871) | Rezultatele filtrării | Cod sursa (job #251321) | Rating Hasmasan Dragos (hasmasandragos) | Cod sursa (job #898583)
Cod sursa(job #898583)
#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);
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=n;val>=0;val--)
{
st[k]=bilet[val];
if(valid(k))
{
if(k==5)
tipar(k);
else
back(k+1);
}
}
}