Pagini recente » Cod sursa (job #79854) | Cod sursa (job #508908) | Cod sursa (job #2802485) | Cod sursa (job #504952) | Cod sursa (job #1698677)
#include <fstream>
#include <iostream>
#include <cstring>
std::ifstream f("permutari.in");
std::ofstream g("permutari.out");
int N;
int perm[9];
bool used[9];
void swap(int i,int j){
int aux = perm[i];
perm[i] = perm[j];
perm[j] = aux;
}
void generate(int index){
if(index == N + 1){
for(int i = 1 ; i <= N ; ++i){
std::cout << perm[i] << " ";
}
std::cout <<"\n";
return;
}
for(int i = 1 ; i <= N ; ++i){
swap(index,i);
generate(index + 1);
swap(index,i);
}
}
void permutations(int index){
if(index == N + 1){
for(int i = 1 ; i <= N ; ++i){
g << perm[i] << " ";
}
g <<"\n";
return;
}
for(int i = 1 ; i <= N ; ++i){
if(!used[i]){
used[i] = true;
perm[index] = i;
permutations(index + 1);
used[i] = false;
}
}
}
int main(){
f >> N ;
permutations(1);
f.close();
g.close();
return 0;
}