Cod sursa(job #625032)

Utilizator metalkittenGeorgiana Arhip metalkitten Data 23 octombrie 2011 17:12:15
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<cstdio>

using namespace std;

int st[100],n,k;

int valid()
{for (int i=1;i<k;i++)
	if(st[i]==st[k]) return 0;
 return 1;
}
void back()
{int as;
 k=1;st[1]=0;
 while(k>0) 
  { do
     {if(st[k]<n)
	    {as=1;st[k]++;}
      else as=0;
	 }while(as && ! valid()); 
    if(as)
		if(k==n) 
			{for(int i=1;i<=n;i++)
				printf("%d ",st[i]);
			 printf("\n");
			}
		else{k++; st[k]=0;} 
	else
		k--; 
  }
}
int main()
{
	freopen("permutari.in","r",stdin);
	freopen("permutari.out","w",stdout);
	scanf("%d",&n);
	back();
	return 0;
}