Pagini recente » Cod sursa (job #3231210) | Cod sursa (job #3131950) | Cod sursa (job #1367061) | Cod sursa (job #428497) | Cod sursa (job #3143216)
#include <fstream>
using namespace std;
ifstream fin("permutari.in");
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 generarea 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);
}
}
backtrack(poz + 1);
}
int main() {
fin >> n;
backtrack(1);
return 0;
}