Cod sursa(job #1357637)
Utilizator | Data | 24 februarie 2015 00:43:26 | |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include <iostream>
#include <fstream>
#define nmax 30
using namespace std;
ifstream fin ("permutari.in");
ofstream fout ("permutari.out");
int n;
bool seen[nmax];
int sol[nmax];
void print(){
for(int i=1; i<=n; i++) fout << sol[i] << " ";
fout << "\n";
}
void backtracking(int k){
if(k>n) print();
for(int i=1; i<=n; i++){
if(!seen[i]){
seen[i]= true;
sol[k]= i;
backtracking(k+1);
seen[i]= false;
}
}
}
int main(){
fin >> n;
backtracking(1);
return 0;
}