Pagini recente » Cod sursa (job #2548440) | Cod sursa (job #2306956) | Cod sursa (job #1991909) | Cod sursa (job #2153868) | Cod sursa (job #1264334)
#include <stdio.h>
#include <stdlib.h>
int v[9];
FILE *fin,*fout;
int n;
/**
Method that checks if an element is duplicated in the array.
**/
int isValid(int pos) {
int i;
for(i=1;i<pos;i++) {
if(v[i] == v[pos])
return 0;
}
return 1;
}
/**
Method that prints the array from [0,pos)
**/
void printArray() {
int i;
for(i=1;i<=n;i++) {
fprintf(fout,"%d ",v[i]);
}
fprintf(fout,"\n");
}
void backtrack(int k) {
if(k==n+1)
printArray();
else {
int i;
for(i=1;i<=n;i++){
v[k]=i;
if(isValid(k))
backtrack(k+1);
}
}
}
int main(void) {
fin=fopen("permutari.in","r");
fout=fopen("permutari.out","w");
fscanf(fin,"%d",&n);
backtrack(1);
return 0;
}