Pagini recente » Palatulvoltaic | warm-up-2020/solutii | Cod sursa (job #1286064) | paralele | Cod sursa (job #411440)
Cod sursa(job #411440)
#include<stdio.h>
int n, st[40321],k;
void cit()
{
scanf("%d",&n);
}
void init(int k)
{
st[k]=0;
}
void succesor(int k, int &es)
{
if(st[k]<n)
{
st[k]++;
es=1;
}
else
es=0;
}
int sol(int k)
{
return k==n;
}
int valid(int k, int &ev)
{
int i;
ev=1;
for(i=1; i<k; i++)
if(st[k]==st[i])
ev=0;
return ev;
}
void afisare()
{
int i;
for(i=1; i<=k; i++)
printf("%d",st[i]);
printf("\n");
}
/*
void back()
{
int es,ev;
k=1;
init(1);
while(k>0)
{
do
{
succesor(k,es);
if(es)
valid(k,ev);
}while(!ev || !es);
if(es)
if(sol(k))
afisare();
else
{
k++;
init(k);
}
else
k--;
}
}
*/
void back()
{
int es,ev;
init(1);
k=1;
while(k>0)
{
int ev=0,es=0;
while(ev==0)
{
succesor(k,es);
if(es)
valid(k,ev);
else ev=1;
}
if(es)
if(sol(k))
afisare();
else
{
k++;
init(k);
}
else
k--;
}
}
int main()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
cit();
back();
if(n==0)
printf("1");
return 0;
}