Cod sursa(job #291732)

Utilizator andoAndronic Octavian ando Data 30 martie 2009 11:59:55
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream.h>
ifstream f("permutari.in");
ofstream g("permutari.out");
typedef int stiva[100];
stiva st;

int n,k,ok,da;
void init(){st[k]=0;}
int succesor(){
  if(st[k]<n){st[k]++; return 1;}
     else return 0;
  }
int valid(){
  for(int i=1; i<k; i++)
    if(st[i]==st[k])return 0;
  return 1;
}
int solutie(){return k==n;}
void write(){
  for(int i=1; i<=n; i++)
    g<<st[i]<<" ";
    g<<'\n';
  }
void back(){
 k=1;
 init();
 while(k>0) {da=1; ok=0;
   while(da&&!ok){
     da=succesor();
     if(da)ok=valid();
     }
   if(da)
     if(solutie())write();
     else{ k++; init();}
   else k--;}
   }

int main (){
  f>>n;
  back();
  f.close();
  g.close();
  return 0;
  }