Cod sursa(job #187178)

Utilizator blue_phoenixPosea Elena blue_phoenix Data 1 mai 2008 13:40:44
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
//#include <time.h>
#include <stdio.h>
int n,st[10];

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

int a_mai_fost(int nr, int limita){
int i;
for(i=1;i<=limita;i++)if(st[i]==nr)return 1;
return 0;
}

int main(){
  int loc,i;
  freopen("permutari.in","r",stdin);
  freopen("permutari.out","w",stdout);
  
  scanf("%d",&n);
  
  loc=n;
  for(i=1;i<=n;i++)st[i]=i;
  afisare();
  while(loc>0){
   st[loc]++;
   if(st[loc]>n)loc--;
     else{
       if(loc==n)
	 {if(!a_mai_fost(st[loc],loc-1))afisare();
	 }else{i=1;
	       while((a_mai_fost(st[loc],loc-1))&&(i<=n))i++;
	       if(i<=n){loc++;st[loc]=0;}
	       }
     }
  }
return 0;
}