Cod sursa(job #1473630)

Utilizator BodStfBodoarca Stefan BodStf Data 19 august 2015 20:27:17
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<stdio.h>
#include<malloc.h>

int N,*sol;

bool verifica(int i)
{
	for(int k=0;k<i;k++)
		if(sol[i]==sol[k])
			return false;
	return true;
}

void bt(int i,FILE* f)
{
	if(i==N)
	{
		for(int k=0;k<N;k++)
			fprintf(f,"%d ",sol[k]);
		fprintf(f,"\n");
		return;
	}

	for(int p=1;p<=N;p++)
	{
		sol[i]=p;
		if(verifica(i))
			bt(i+1,f);
	}
}

int main()
{
	FILE* f1=fopen("permutari.in","r");
	FILE* f=fopen("permutari.out","w");
	if(!f || !f1)
	{
		printf("eroare deschidere fisier!\n");
		return -1;
	}
	fscanf(f1,"%d",&N);
	sol=(int*)malloc(N*sizeof(int));
	bt(0,f);
	free(sol);

	return 0;
}