Pagini recente » Cod sursa (job #2656706) | Cod sursa (job #2696172) | Cod sursa (job #1349713) | Cod sursa (job #2493511) | Cod sursa (job #588333)
Cod sursa(job #588333)
#include <cstdio>
#include <algorithm>
FILE *g=fopen("loto.in","r");
FILE *z=fopen("loto.out","w");
using namespace std;
int v[111],s,st[105],n,aux;
bool ok=false;
void qsort(int l,int r)
{
int i=l,j=r,t;
t=v[(l+r)/2];
while(i<=j)
{
while(v[i]<t)
i++;
while(v[j]>t)
j--;
if(i<=j)
{
swap(v[i],v[j]);
i++;
j--;
}
}
if(l<j)
qsort(l,j);
if(i<r)
qsort(i,r);
}
int valid(int p)
{
int i,s2=0;
for(i=1;i<=p;i++)
{
s2+=st[i];
if(s2>s) return 0;
}
return s2;
}
void back(int niv)
{
int i;
if(ok==false)
for(i=1;i<=n;i++)
{
st[niv]=v[i];
aux=valid(niv);
if(aux)
{
if(niv==6 and aux==s)
{
for(int j=1;j<=6;j++)
fprintf(z,"%d ",st[j]);
fclose(z);
ok=true;
return ; return ; return ;
}
else
back(niv+1);
}
}
}
int main()
{
int max=-564;
fscanf(g,"%d%d",&n,&s);
for(int i=1;i<=n;i++)
{
fscanf(g,"%d",&v[i]);
if(max<v[i])
max=v[i];
}
fclose(g);
if(max*6<s)
{
fprintf(z,"-1");
return 0;
}
qsort(1,n);
back(1);
if(ok==false)
fprintf(z,"-1");
return 0;
}