Cod sursa(job #803041)

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