Cod sursa(job #317402)

Utilizator popoiu.georgeGeorge Popoiu popoiu.george Data 23 mai 2009 15:25:28
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<stdio.h>
using namespace std;

//fstream f("permutari.in",ios::in),g("permutari.out",ios::out);

int st[100],n,k;

void tipar(){for(int i=1;i<=k;i++)printf("%d ",st[i]);printf("\n");}

void init(){st[k]=0;}

int am_succ(){if(st[k]<n){st[k]++;return 1;}return 0;}

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

int sol(){return k==n;}

void bkt()
{
int as;
k=1;init();
while(k>0)
	{
	do {} while( (as=am_succ()) && !e_valid() );
	if(as)
		{
		if(sol())tipar();
		else {k++;init();}
		}		
	else k--;
	}
}

int main()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d",&n);
//f>>n;
//f.close();
bkt();
//g.close();
return 0;
}