Cod sursa(job #1605190)
| Utilizator | Data | 18 februarie 2016 20:19:24 | |
|---|---|---|---|
| Problema | Generare de permutari | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
const int NMAX = 8;
int n;
bitset<NMAX + 1> vis;
int v[NMAX + 1];
int backtrack(int k) {
if(k == n + 1) {
for(int i = 1; i <= n; ++i)
fout << v[i] << ' ' ;
fout << '\n';
} else {
for(int i = 1; i <= n; ++i)
if(vis[i] == false) {
vis[i] = true;
v[k] = i;
backtrack(k + 1);
vis[i] = false;
}
}
}
int main() {
fin >> n;
backtrack(1);
return 0;
}