Cod sursa(job #365902)

Utilizator Cristi09Cristi Cristi09 Data 20 noiembrie 2009 10:28:46
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<iostream.h>
void main()
{
  int n,a[20],i,aux=0,j,cont,s=0;
  cin>>n;
  for(i=0;i<n;i++)
  {a[i]=0;}

  while(s!=n)
  {
	 for(i=aux;i<n;i++)
	 {
	   if(a[i]==0){a[i]=1;if(i!=0)a[i-1]=0;aux=i;i=n;}
	   if(i==n-1&&a[i]==1)
	   {
		  cont=0;
		  while(a[i]==1)
		  {a[i]=0;i--;cont++;}
		  for(j=n-1;j>=0;j--)
		  if(a[j]==0&&(a[j-1]==1||j==0))
		  {
			if(j!=0)a[j-1]=0;
			else
			{
			   aux=i=0;
			   while(i<cont)
			   {a[i+1]=1;i++;}
			}
			if(j!=n-1)
			{
			  a[j]=1;
			  i=0;
			  while(i<cont)
			  {a[i+j+1]=1;i++;}
			  aux=j;
			}
			i=n;
			j=-1;
		  }
	   }
	 }
	 for(i=0,s=0;i<n;i++)
	 {cout<<a[i]<<" ";s+=a[i];}
	 cout<<endl;
  }
}