Pagini recente » Cod sursa (job #1138914) | Cod sursa (job #2483074) | Cod sursa (job #3141946) | Cod sursa (job #486196) | Cod sursa (job #497130)
Cod sursa(job #497130)
#include <stdio.h>
using namespace std;
int k,st[100],as,ev,n,i;
void init (int k, int st[100])
{
st[k]=0;
}
void succesor (int k, int st[100], int &as)
{
if(st[k]<n)
{
st[k]=st[k]++;
as=1;
}
else as=0;
}
void valid (int k, int st[100], 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;
}