Cod sursa(job #804490)

Utilizator petiVass Peter peti Data 29 octombrie 2012 21:15:12
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream ifs("permutari.in");
ofstream ofs("permutari.out");
int *a;
int N;
inline void print(){for(int i=0;i<N;i++)ofs<<a[i]<<" ";ofs<<"\n";}

int main(){
	
	ifs>>N;

	a=new int[N];
	for(int i=0;i<N;i++) a[i]=0;
	
	int k=0;
	while(k>=0){
		
		int i=0;
		bool flag=false;
		
		while(i<N && !flag){
			flag=true;i++;
			for(int n=0;n<=k;n++){
				if(i==a[n] || i<=a[k]){flag=false;break;}
			}
		}
		
		if(flag){
			a[k]=i;
			if(k>=N-1){
				print();
				a[k]=0;
				k--;
			}
			else
				k++;
		}
		else{
			a[k]=0;
			k--;
		}
	}
	

	return 0;
}