Pagini recente » Cod sursa (job #2362557) | Cod sursa (job #1333558) | Cod sursa (job #1751746) | Cod sursa (job #333333) | Cod sursa (job #295396)
Cod sursa(job #295396)
#include<fstream.h>
#include<math.h>
#include<values.h>
ifstream f("loto.in");
ofstream g("loto.out");
int st[7],i,n,ok,x,k; long nr[101],s,s1,cont=0;
void init(int k)
{
st[k]=0;
}
int succesor(int k)
{
if (st[k]<n)
{
st[k]++;
return 1;
}
return 0;
}
int valid(int k)
{
ok=0;
for (i=1; i<=x; i++)
if (st[k]==nr[i]) ok=1;
if (ok==0) return 0;
/* s1=0;
for (i=1; i<k; i++)
s1+=st[i];
if (s1>s) return 0; */
return 1;
}
int solutie (int k)
{
if (k==6)
{
s1=0;
for (i=1; i<=6; i++)
s1+=st[i];
if (s1==s) return 1;
return 0;
}
return 0;
}
void tipar(int k)
{
for (i=1; i<=k; i++)
if (i<k) g<<st[i]<<" "; else g<<st[i];
}
void back(int k)
{
init(k);
while (succesor(k) && cont==0)
{
if (valid(k))
if (solutie(k))
{
tipar(k);
cont=1;
}
else if (k<=6) back(k+1);
}
}
int main ()
{
f>>x>>s; n=0;
for (i=1; i<=x; i++)
{
f>>nr[i];
if (nr[i]>n) n=nr[i];
}
back(1);
if (cont==0) g<<"-1";
return 0;
}