Pagini recente » Cod sursa (job #2031408) | Cod sursa (job #3250457) | Cod sursa (job #51169) | Cod sursa (job #119051) | Cod sursa (job #254318)
Cod sursa(job #254318)
#include<stdio.h>
int v[31],i,n,as,ok;
long z,k;
void init()
{
v[i]=0;
}
int tipar ()
{
if(z==k)
{
for(i=1;i<=n;i++)
printf("%d ",v[i]);
return 1;
}
return 0;
}
int succesor()
{
return (i<n);
}
int valid ()
{
for(int j=1;j<=n;j++)
if(v[j]==v[i] && i!=j)
return 0;
if(v[i]==0)
return 0;
return 1;
}
int back()
{
i=1;
init();
while(1)
{
as=succesor();
if(as)
{
do
{
v[i]++;
}while(!valid()); //while
if(v[i]>n)
{
init();
i--;
}
else
{
i++;
init();
}
}
else
{
do
{
v[i]++;
}while(!valid()); //while
if(v[i]>n)
{
init();
i--;
}//if
else
{
z++;
ok=tipar();
if(ok)
return 0;
}
}//else
}//while
}//back
int main ()
{
freopen("planeta.in","r",stdin);
freopen("planeta.out","w",stdout);
scanf("%d%ld",&n,&k);
back();
return 0;
}