Cod sursa(job #469169)

Utilizator RuxyRezidentTMRuxandra P RuxyRezidentTM Data 6 iulie 2010 18:35:08
Problema Generare de permutari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<stdio.h>
using namespace std;


int verificare(int a[], int n)
{ int i,j;
  for(i=1;i<=n;i++)
	for(j=i;j<=n;j++)
	  if(i!=j&&a[i]==a[j]) return 0;
  return 1;
}

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

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