Cod sursa(job #270025)

Utilizator bigdoggMic Matei bigdogg Data 3 martie 2009 18:14:38
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>

void back();
int ver(int);

int N,s[9];


int main()
{
	FILE *in=fopen("permutari.in","r");
	fscanf(in,"%d",&N);	fclose(in);
	back();
	return 0;
}

void back()
{
	int i,k=1,ok;
	s[k]=0;
	
	FILE *out=fopen("permutari.out","w");
	while(k>0)
	{
		ok=0;
		while(s[k]<N && !ok){ s[k]++; ok=ver(k); } 
		if(ok)
			if(k==N)
			{
				for(i=1;i<=N;i++)
					fprintf(out,"%d ",s[i]);
				fprintf(out,"\n");
			}
			else s[++k]=0;
		else k--;
	}
	fclose(out);
}

int ver(int k)
{
	for(int i=1;i<k;i++)
			if(s[i]==s[k]) return 0;
	return 1;
}