Cod sursa(job #1722670)

Utilizator andrei4_bulzanAndrei Bulzan andrei4_bulzan Data 28 iunie 2016 17:45:57
Problema Generare de permutari Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>
#include <stdlib.h>

int n, v[8];

int valid(int k, int i)
{
    int j;
    for(j=0; j<k; j++)
        if(v[j] == i)
        return 0;
    return 1;
}

void perm(int k, FILE *g)
{
    int i;
    if(k == n)
    {
        for(i=0; i<n; i++)
            fprintf(g, "%d ", v[i]);
        fputc('\n', g);
    }
    else
    {
        for(i=1; i<=n; i++)
            if(valid(k, i))
            {
                v[k]=i;
                perm(k+1, g);
            }
    }

}

int main()
{
    FILE *f = fopen("permutari.in", "r");
    FILE *g;
    if(!f)
        exit(1);
    fscanf(f, "%d", &n);
    fclose(f);
    if(!g)
        exit(2);
    g = fopen("permutari.out", "w");
    perm(0, g);
    fclose(g);
    return 0;
}