Pagini recente » Cod sursa (job #861461) | Cod sursa (job #103101) | Cod sursa (job #1509830) | Cod sursa (job #2615765) | Cod sursa (job #497139)
Cod sursa(job #497139)
#include <stdio.h>
using namespace std;
int k,st[9],as,ev,n,i;
void init (int k, int st[9])
{
st[k]=0;
}
void succesor (int k, int st[9], int &as)
{
if(st[k]<n)
{
st[k]=st[k]++;
as=1;
}
else as=0;
}
void valid (int k, int st[9], int &ev)
{
ev=1;
for(i=1;i<k;i++)
if(st[i]==st[k]) ev=0;
}
int solutie (int k)
{
if(k==n) return 1;
else return 0;
}
void tipar (int k)
{
for(i=1;i<=n;i++) printf("%d ", st[i]);
printf("\n");
}
void back ()
{
k=1;
init (k,st);
while(k)
{
do{
succesor (k,st,as);
if(as) valid (k,st,ev);
}while(as && !ev);
if(as)
if(solutie (k)) tipar (k);
else
{
k++;
init (k,st);
}
else k--;
}
}
int main ()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d", &n);
back ();
return 0;
}