Cod sursa(job #803048)

Utilizator StefanLacheStefan Lache StefanLache Data 26 octombrie 2012 22:05:42
Problema Generare de permutari Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include<stdio.h>
#include<stdlib.h>
FILE *g=fopen("permutari.out","wt");
int N;
int bun(int *v,int i)
{
    int j;
    for(j=0;j<i;++j)
        if(v[j] == v[i])
            return 0;
    return 1;
}
int solutie(int *v,int i)
{
    if(i == N-1)
        return 1;
    return 0;
}
void afiseaza(int *v)
{
    int i;
    for(i=0;i<N;++i)
        fprintf(g,"%i",v[i]);
    fprintf(g,"\n");
}
void back(int i,int *v)
{
    int j;
    for(j=1;j<=N;++j)
        {
            v[i]=j;
            if(bun(v,i))
                if(solutie(v,i))
                    afiseaza(v);
                    else back(i+1,v);
        }
}
int main()
{
    FILE *f=fopen("permutari.in","rt");
    int *v;
    fscanf(f,"%i",&N);
    fclose(f);
    v=(int *)malloc(N*sizeof(int));
    back(0,v);
    return 0;
}