Cod sursa(job #462055)

Utilizator voikybodea voichita voiky Data 9 iunie 2010 17:20:44
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<fstream>
using namespace std;

ifstream f("permutari.in");ofstream g("permutari.out");
int n,x[9];

void afis()
{
	int i;
	for(i=1;i<=n;i++)g<<x[i]<<' ';
	g<<'\n';
}

void schimb(int &a,int &b)
{
	int aux=a;a=b;b=aux;
}

int main()
{
	f>>n;
    int i,j;
	for(i=1;i<=n;i++)x[i]=i;
	do{
		afis();
		for(i=n-1;i && x[i]>=x[i+1];i--);
		if(i)
		{
			for(j=n;j>=i+1 && x[j]<=x[i];j--);
			schimb(x[i],x[j]);
			for(j=i+1;j<=(n+i+1)/2;j++)schimb(x[j],x[n+i+1-j]);
		}	
	}while(i);
	f.close();g.close();
	return 0;
}