Pagini recente » Borderou de evaluare (job #3002386) | Borderou de evaluare (job #2867682) | Borderou de evaluare (job #2540511) | Rezultatele filtrării | Cod sursa (job #1862084)
#include <cstdio>
#include <bitset>
FILE *in,*out;
using namespace std;
const int nmax = 9;
int n;
int sol[nmax]; //sol[0] = 0; sol[1] = 2; sol[2] = 1
bitset<nmax> visited;
//exploreaza-mi, te rog, spatiul solutiilor
void explore(int k) {
if(k==n) { //we found a solution
for(int i = 0; i < n;i ++){
fprintf(out,"%d ",sol[i]+1);
}
fprintf(out,"\n");
} else {
for(int i=0; i<n; i++) {
if(visited[i] == 0) { //linia e libera, e bine
sol[k] = i;
visited[i] = 1;
explore(k + 1); //e un apel recursiv
//te intorci din recursie aici
visited[i] = 0;
}
}
}
}
int main() {
in = fopen("permutari.in","r");
out = fopen("permutari.out","w");
fscanf(in,"%d",&n);
explore(0);
return 0;
}