Pagini recente » Cod sursa (job #1937970) | Cod sursa (job #2241816) | Cod sursa (job #2675599) | Cod sursa (job #2507467) | Cod sursa (job #2132796)
#include <fstream>
#include <iostream>
#include <cstring>
using namespace std;
ifstream f ("loto.in");
ofstream g ("loto.out");
int x[7],a[101],n,s,sol[7];
void citire()
{
f>>n>>s;
for(int i=1; i<=n; i++)
f>>a[i];
}
bool valid(int k)
{
return k<=6;
}
bool solutie(int k,int sum)
{
return k==6&&sum==s;
}
void back(int k=1,int s=0)
{
for(int i=1; i<=n&&sol[1]==0; i++)
{
x[k]=i;
s+=a[i];
if(valid(k))
{
if(solutie(k,s))
{
for(int i=1; i<=6; i++)
sol[i]=a[x[i]];
}
else
back(k+1,s);
}
s-=a[i];
}
}
bool e_zero()
{
for(int i=1; i<=6; i++)
if(sol[i]==0)
return 1;
return 0;
}
int main()
{
int maxim=0;
citire();
for(int i=1; i<=n; i++)
{
if(maxim<a[i])
maxim=a[i];
}
if(maxim*6<s)
g<<-1;
else
{
back();
if(e_zero()==false)
{
for(int i=1; i<=6; i++)
g<<sol[i]<<' ';
}
else
g<<-1;
}
return 0;
}