Pagini recente » Cod sursa (job #2068126) | Cod sursa (job #114961) | Cod sursa (job #2914392) | Cod sursa (job #2416175) | Cod sursa (job #284435)
Cod sursa(job #284435)
#include<fstream.h>
ifstream intrare("loto.in");
ofstream iesire("loto.out");
long int numere[101];
long int s;int n;
long int b[10000][7];
int count;
void citeste()
{
intrare>>n>>s;
for(int i=1;i<=n;i++)
intrare>>numere[i];
}
void afiseaza(int linia,short int poz)
{
if(poz>1)
{
long int aux=b[linia][0]-b[linia][poz];
int r=0;
for(int q=1;q<=count;q++)
if(b[q][0]==aux){r=q;q=count+1;}
afiseaza(r,poz-1);
}
iesire<<b[linia][poz]<<" ";
}
int main()
{
citeste();
int i,j,r;
for(i=1;i<=n;i++)
{
b[i][0]=numere[i];
b[i][1]=numere[i];
}
int min=1;count=n;
while(min<=n)
{
i=1;
while(i<=count)
{
long int aux=b[i][0]+numere[min];
if(aux<=s)
{
r=0;
for(int q=1;q<=count;q++)
if(aux==b[q][0]){r=q;q=count+1;}
if(r==0){count++;b[count][0]=aux;r=count;}
for(int t=1;t<6;t++)
{
if(b[i][t]!=0)
{
b[r][t+1]=numere[min];
}
}
if(b[r][0]==s&&b[r][6]!=0)
{
min=n+1;i=i+count;r=r-1;
}
if(!b[r][1]&&!b[r][2]&&!b[r][3]&&!b[r][4]&&!b[r][5]&&b[r][6]!=s)
{
count--;
}
}
i++;
}
min++;
}
if(b[count][0]!=s)iesire<<"-1";
else
{
afiseaza(count,6);
}
return 0;
}