Cod sursa(job #952163)

Utilizator bDannYdBurileanu Daniel bDannYd Data 22 mai 2013 19:52:34
Problema Generare de permutari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.82 kb
#include<stdio.h>

int n, v[100];
FILE *fout;

void print() {
    int i;

    for(i = 1; i <= n; i++)
        fprintf(fout, "%d ", v[i]);
    fprintf(fout, "\n");
}
int valid(int k) {
    int i;

    for(i = 1; i < k; i++)
        if(v[i] == v[k])
            return 0;
    return 1;
}
void back(int k) {
    int i;

    if(k == n+1 && valid(k))
        print();
    else {
        for(i = 1; i <= n; i++) {
                v[k] = i;
                if(valid(k))
                    back(k + 1);
                v[k] = 0;
        }
    }
}

void read() {
    FILE *fin;

    fin = fopen("permutari.in","r");
    fscanf(fin, "%d", &n);
    fclose(fin);
}

int main() {
    read();
    fout = fopen("permutari.out","w");

    printf("%d",n);
    back(1);
    fclose(fout);
    return 0;
}