Cod sursa(job #539665)

Utilizator cristian.utaUta Cristian cristian.uta Data 23 februarie 2011 11:01:30
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<stdio.h>
//#include<stdlib.h>

FILE* in;
FILE* out;

void afisare(int *s,int n)
{
	int i;
	for (i=0;i<n;i++)
		fprintf(out,"%d ",s[i]);
	fprintf(out,"\n");
}

bool cont(int k,int *s)
{
	int i;
	for (i=0;i<k;i++)
		if (s[i]==s[k]) return false;
	return true;
}

void back(int n)
{
	int *s;
	s=new int [n];
	int k=0;
	s[k]=0;
		while (k>=0)
			if (s[k]<n)
			{
				s[k]++;
				if (cont(k,s))
					if (k==n-1)
						afisare(s,n);
					else
					{
						k++;
						s[k]=0;
					}
			}
			else k--;
}

void citire(int &n)
{
	in = fopen("permutari.in","r");
	out = fopen("permutari.out","w");
	fscanf(in,"%d",&n);
}

int main()
{
	int n;
//	printf("n:");
//	scanf("%d",&n);
	citire(n);
	back(n);

	fclose(in);
	fclose(out);

//	system("PAUSE");
	return 0;
}