Pagini recente » Cod sursa (job #3239195) | Cod sursa (job #1815967) | Cod sursa (job #1435214) | Cod sursa (job #1654445) | Cod sursa (job #291757)
Cod sursa(job #291757)
#include<iostream.h>
#include<stdio.h>
long long n,s,sum,i,j,nr[110],st[10],k,aux,ord,ok=1,o;
void init(int p)
{
st[k]=nr[p];
}
int succesor()
{
if(st[k]<nr[n])
for(i=1;i<=n;i++)
if((nr[i]<=st[k])&&(st[k]<nr[i+1]))
{
st[k]=nr[i+1];
return 1;
}
return 0;
}
int solutie()
{
sum=0;
for(j=1;j<=6;j++)
sum=sum+st[j];
if(sum==s) return 1;
return 0;
}
void tiparire()
{
do
{
ord=1;
for(i=1;i<6;i++)
if(st[i]>st[i+1])
{
aux=st[i+1];
st[i+1]=st[i];
st[i]=aux;
ord=0;
}
}while(ord==0);
for(i=1;i<=6;i++)
cout<<st[i]<<" ";
}
void loto()
{
int as;
for(o=1;o<=6;o++)
if(ok)
{
for(k=1;k<=6;k++)
init(o);
if(solutie()&&ok) {tiparire(); ok=0; }
k=1;
as=succesor();
while(as&&k<=6)
{
if(solutie()&&ok) {tiparire(); ok=0;}
as=succesor();
if(as==0)
{
k++;
as=succesor();
}
}
}
if(ok==1) cout<<"-1";
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
cin>>n>>s;
for(i=1;i<=n;i++)
cin>>nr[i];
do
{
ord=1;
for(i=1;i<n;i++)
if(nr[i]>nr[i+1])
{
aux=nr[i+1];
nr[i+1]=nr[i];
nr[i]=aux;
ord=0;
}
}while(ord==0);
if(nr[n]*6<s) cout<<"-1";
else loto();
return 0;
}