Cod sursa(job #779614)

Utilizator emiemiEmi Necula emiemi Data 18 august 2012 11:42:40
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<cstdio>
using namespace std;
FILE *f,*g;
int l,i,j,n,ok,k,a[1000],uz[1000];
int main()
{f=fopen("permutari.in","r");
g=fopen("permutari.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;++i)
{a[i]=i; uz[i]=1; }
for(k=1;k<=n;++k)
		fprintf(g,"%d ",a[k]);
fprintf(g,"\n");
ok=1;
for(i=n;i>=1;--i)
{for(j=a[i]+1;j<=n;++j)
	if(uz[j]==0)
		break;
	if(j<=n)
	{uz[a[i]]=0;
	a[i]=j;
	uz[j]=1;
	k=1;
	for(l=i+1;l<=n;++l)
	{while(uz[k]==1)
		++k;
	a[l]=k;
	uz[k]=1;
	}
	for(k=1;k<=n;++k)
		fprintf(g,"%d ",a[k]);
	fprintf(g,"\n");
	i=n+1;
	}
	else
		uz[a[i]]=0; }
return 0;
}