Cod sursa(job #1264336)

Utilizator pitbull007Hurmuzache Ciprian pitbull007 Data 15 noiembrie 2014 18:47:03
Problema Generare de permutari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>
#include <stdlib.h>

int v[9];
FILE *fin,*fout;
int n;
int isValid(int pos) {
    int i;
    for(i=1;i<pos;i++) {
        if(v[i] == v[pos])
            return 0;
    }
    return 1;
}

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;
}