Cod sursa(job #299544)

Utilizator stanesealexStanese Alex stanesealex Data 6 aprilie 2009 20:51:12
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<cstdio>

using namespace std;

int sol[10];
int valid(int k)
{
	int i;
	for (i=1;i<k;i++)
		if (sol[i]==sol[k])
			return 0;
	 return 1;
}
int main()
{
	int n, altul, k,i;
	FILE *f=fopen("permutari.in","r");
	FILE *g=fopen("permutari.out","w");
	fscanf(f,"%d",&n);
	k=1;
	while (k)
	{
		do
		{
			if (sol[k]<n)
			{
				sol[k]++;
				altul=1;
			}
			else altul=0;
		}
		while (altul && !valid(k));
			if (altul)
			{
				if (k==n)
				{
					for (i=1;i<=n;i++)
					fprintf(g,"%d ",sol[i]);
					fprintf(g,"\n");
				}
					else
					{
						k++;
						sol[k]=0;
					}
			}
			else k--;
	}
	return 0;
}