Pagini recente » Cod sursa (job #1918606) | Cod sursa (job #3159601) | Cod sursa (job #368272) | Cod sursa (job #2791157) | Cod sursa (job #3143214)
#include <fstream>
using namespace std;
ofstream fout("permutari.out");
int n, p[10], len;
bool nonExistent(int poz, int val) {
for(int i = 1; i < poz; i++) {
if(p[i] == val) {
return false;
}
}
return true;
}
void backtrack(int poz) {
// Am terminat de generat permutarea curenta:
if(poz == n + 1) {
for(int i = 1; i <= n; i++) {
fout << p[i] << " ";
}
fout << "\n";
return;
}
// Ce numar pun in p[poz]?
for(int val = 1; val <= n; val++) {
// Pot pune valoarea val in p[poz]?
if(nonExistent(poz, val)) {
p[poz] = val;
backtrack(poz + 1);
}
}
}
int main() {
ifstream fin("permutari.in");
fin >> n;
backtrack(1);
return 0;
}