Cod sursa(job #914343)

Utilizator XeBluePodaru Mihai XeBlue Data 14 martie 2013 02:12:06
Problema Generare de permutari Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<fstream>
using namespace std;

ifstream in("permutari.in");
ofstream out("permutari.out");

const int N = 31;

int v[N], n, r[N];

void citire();
void backtracking();
void afisare();

int main()
{
	citire();
	backtracking();
	
	in.close();
	out.close();
	return 0;
}

void citire() { in >> n ; }
 
void backtracking()
{
    int p=1;
    while(p)
    {
        while(v[p]<n)
        {
            v[p]++;
            if(r[v[p]]==0 && p==n)
				afisare();
             else
			 {
				r[v[p]]=1;
				v[++p]=0;
			 }
        }
        p--;
        r[v[p]]=0;
    }
}

void afisare()
{
    for(int i=1;i<=n;i++)
      out << v[i] << " ";
    out<<"\n";
}