Cod sursa(job #418487)

Utilizator andreirulzzzUPB-Hulea-Ionescu-Roman andreirulzzz Data 15 martie 2010 22:25:25
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <cstdio>
#include <fstream>
using namespace std;
FILE *f,*g;

long n,k,p,a[30],i,aux,poz,maxi,j,x;

void perm(int k)
{
	if(k==1) return;
	else
	{
		for(i=1;i<=n;i++) fprintf(g,"%d ",a[i]);fprintf(g,"\n");
		maxi=n;poz=k;
		for(i=k;i<=n;i++)if ((a[i]<=maxi)&&(a[i]>a[k-1])){maxi=a[i];poz=i;}
		aux=a[k-1];a[k-1]=a[poz];a[poz]=aux;sort(a+k,a+n+1);k=n;while(a[k-1]>a[k]) --k;
		perm(k);
	}
}


int main()
{
	f=fopen("permutari.in","r");
	g=fopen("permutari.out","w");
	fscanf(f,"%ld%ld%ld",&n);
	for(i=1;i<=n;i++) a[i]=i;
	perm(n);
	for(i=1;i<=n;i++) fprintf(g,"%ld ",a[i]);
	return 0;
}