Cod sursa(job #708034)

Utilizator misinoonisim necula misino Data 6 martie 2012 11:55:33
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 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;}


fclose(f);
fclose(g);
return 0;
}