Pagini recente » Cod sursa (job #1523628) | Cod sursa (job #1691732) | Cod sursa (job #2472553) | Cod sursa (job #2484536) | Cod sursa (job #1990704)
#include<stdio.h>
int valid(int k,int v[],int n)
{int i;
for(i=1;i<=k-1;i++)
if(v[i]==v[k])
return 0;
return 1;
}
int solutie(int k,int v[],int n)
{
if(k==n)
return 1;
return 0;
}
void afisare(int k,int v[],int n, FILE *out)
{int i;
for(i=1;i<=k;i++)
fprintf(out, "%d ", v[i]);
fprintf(out,"\n");
}
void BK(int k,int v[],int n,FILE *out)
{int i;
for(i=1;i<=n;i++)
{v[k]=i;
if(valid(k,v,n))
{if(solutie(k,v,n))
afisare(k,v,n,out);
else
BK(k+1,v,n,out);
}
}
}
int main()
{
char input_filename[] = "permutari.in.txt";
FILE *in = fopen(input_filename,"rt");
if(in==NULL){
fprintf(stderr, "ERROR");
return -1;
}
int n;
fscanf(in, "%d", &n);
fclose(in);
int v[20];
char output_filename[]="permutari.out.txt";
FILE *out=fopen(output_filename,"wt");
BK(1,v,n,out);
return 0;
}