Pagini recente » Cod sursa (job #3159892) | Cod sursa (job #353438) | Cod sursa (job #1269914) | Cod sursa (job #2142133) | Cod sursa (job #1131857)
#include<stdio.h>
#include<iostream.h>
FILE*A,*B;
int n,k,x[100000];
int aleg(int k)
{
x[k]++;
if(x[k]<=n)return 1;else return 0;
}
int verif(int k)
{
int ok=1,i;
for(i=1;i<=k-1;i++)if(x[i]==x[k])ok=0;
return ok;
}
int initial(int k)
{
int mink;
mink=0;
return mink;
}
void solutie()
{
int i;
for(i=1;i<=n;i++)fprintf(B,"%d ",x[i]);
fprintf(B,"\n");
}
void bak()
{
int a,v;
k=1;
x[k]=initial(k);
while(k!=0)
{
a=aleg(k);
v=verif(k);
while(a==1&&v==0){a=aleg(k);v=verif(k);}
if(a==0)k--;
else if(k==n)solutie();
else {k++;x[k]=initial(k);}
}
}
int main()
{
A=fopen("permutari.in","r");
B=fopen("permutari.out","w");
fscanf(A,"%d",&n);
bak();
fclose(A);
fclose(B);
}