Pagini recente » Cod sursa (job #623228) | Cod sursa (job #864389) | Cod sursa (job #188505) | Cod sursa (job #2783781) | Cod sursa (job #3143217)
#include <fstream>
using namespace std;
ofstream fout("permutari.out");
int n, p[10], len;
bool used[10];
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(!used[val]) { // O(1)
p[poz] = val;
used[val] = true;
backtrack(poz + 1);
used[val] = false; // undo
}
}
}
int main() {
ifstream fin("permutari.in");
fin >> n;
backtrack(1);
return 0;
}