Pagini recente » Cod sursa (job #2798975) | Cod sursa (job #1265142) | Cod sursa (job #2519295) | Cod sursa (job #438095) | Cod sursa (job #1274804)
#include <stdio.h>
#include <stdlib.h>
int n,s,v[101],a[101],ok=-1;
FILE *f,*g;
int generare(int x[101])
{
int i,s1=0;
for(i=1; i<=n; i++)
s1=s1+x[i]*v[i];
if(s1==s)
return 1;
return 0;
}
void init(int k)
{
a[k]=0;
}
int verif(int k)
{
int suma=0,i;
if(k==n)
for(i=1; i<=n; i++)
suma=suma+a[i];
for(i=1; i<k; i++)
if(a[i]==a[k])
return 0;
if(suma==6)
return 1;
return 0;
}
int sol(int k)
{
if(k==n)
return 1;
return 0;
}
void citire()
{
f=fopen("loto.in","r");
g=fopen("loto.out","w");
fscanf(f,"%d %d",&n,&s);
int i;
for(i=1; i<=n; i++)
fscanf(f,"%d",&v[i]);
}
void afis()
{
int i,j;
for(i=1; i<=n; i++)
for(j=1; j<=a[i]; j++)
fprintf(g,"%d ",v[i]);
}
void BT()
{
int k;
k=1;
init(k);
while(k>0)
{
if(a[k]<n)
{
a[k]++;
if(verif(k))
if(sol(k))
if(generare(a))
{
afis();
ok=1;
break;
}
if(!sol(k))
{
k++;
init(k);
}
}
else
k--;
}
}
int main()
{
printf("Hello world!\n");
citire();
BT();
if(ok!=1)
fprintf(g,"%d",ok);
return 0;
}