Cod sursa(job #1161105)

Utilizator adrianbercaBerca Adrian adrianberca Data 31 martie 2014 00:14:32
Problema Generare de permutari Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.78 kb
#include <stdio.h>
#include <stdlib.h>
//n=pozitia
//viz[100]-vectorul de vizita
//N=k
 FILE *f,*g;
void backtracking (int n,int N,int x[10], int viz[10])
{
    int i;
    if(n==(N+1))
    {
        for(i=1;i<=N;i++)
        {
            fprintf(g,"%d ",x[i]);
        }
        fprintf(g,"\n");
        return;
    }

    for(i=1;i<=N;i++)
    {
        if(viz[i]==0)
        {
            x[n]=i;
            viz[i]=1;
            backtracking(n+1,N,x,viz);
            viz[i]=0;
        }
    }  return;

}
int main()
{

    f=fopen("permutari.in","r");
    g=fopen("permutari.out","w");
    int i,N,x[10],viz[10];
    for(i=0;i<=N;i++)
        viz[i]=0;
    fscanf(f,"%d",&N);
    backtracking(1,N,x,viz);
    fclose(f);
    fclose(g);
    return 0;
}