Pagini recente » Cod sursa (job #670728) | Cod sursa (job #1255644) | Cod sursa (job #2470642) | Cod sursa (job #331460) | Cod sursa (job #932938)
Cod sursa(job #932938)
#include<cstdio>
using namespace std;
FILE *fin=fopen("permutari.in","r");
FILE *fout=fopen("permutari.out","w");
int st[10],i,ams,n,ev;
int pune_valoare(int niv)
{
int ok=0;
if(niv<=n&&st[niv]<n)
{
st[niv]++;
ok=1;
}
return ok;
}
int valid(int niv)
{
int ok=1,i;
for(i=1;i<niv;i++)
if(st[niv]==st[i])
ok=0;
return ok;
}
void back()
{
int k=1;
while(k>0)
{
do{ams=pune_valoare(k);
if(ams==1)
ev=valid(k);
}while(ams==1&&ev==0);
if(ams==1&&ev==1)
{
if(k==n)
{ int aux;
for(aux=1;aux<=n;aux++)
fprintf(fout,"%d ",st[aux]);
fprintf(fout,"\n");
}
else
{ k++;
st[k]=0;
}
}
else
k--;
}
}
int main()
{
fscanf(fin,"%d",&n);
back();
fclose(fin);
fclose(fout);
return 0;
}