Cod sursa(job #1577275)
Utilizator | Data | 23 ianuarie 2016 12:58:00 | |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.67 kb |
#include <iostream>
#include <cstdio>
using namespace std;
FILE *fin = fopen("permutari.in", "r");
FILE *fout = fopen("permutari.out", "w");
bool ocupat[12];
char s[30];
void backtracking(int poz, int n){
for(int i=1; i<=n; ++i){
if(!ocupat[i]){
ocupat[i] = true;
s[2*poz-2] = '0' + i;
s[2*poz-1] = ' ';
if(poz == n){
s[2*n] = '\0';
fprintf(fout, "%s\n", s);
}
else backtracking(poz+1, n);
ocupat[i] = false;
}
}
}
int main()
{
int n;
fscanf(fin, "%d", &n);
backtracking(1, n);
return 0;
}