Cod sursa(job #180937)

Utilizator xtremespeedzeal xtreme Data 17 aprilie 2008 17:50:16
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<iostream.h>
#include<fstream.h>

int as,ev,st[9],k,n,i;

int succesor()
	{
	as=0;
	if(st[k]<n)
		{
		as=1;
		st[k]++;
		}
	return as;
	}
void valid()
	{
	ev=1;
	for(i=1;i<=k-1;i++)
		if(st[i]==st[k])
			{
			ev=0;
			break;
			}
	}
int main()
	{
	fstream f("permutari.in",ios::in),g("permutari.out",ios::out);
	f>>n;
	k=1;
	st[k]=0;
	while(k>0)
		{
		do
			{
			if(succesor())
				valid();
			}
		while(as && !ev);
		if(as)
			{
			if(k==n)
				{
				for(i=1;i<=n;i++)
					g<<st[i]<<" ";
				g<<"\n";
				}
			else
				{
				k++;
				st[k]=0;
				}
			}
		else
			k--;
		}
	f.close();g.close();
	}