Cod sursa(job #157463)

Utilizator nimicLeoveanu Mihaita Alexandru nimic Data 13 martie 2008 00:49:04
Problema Generare de permutari Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>
#define Dim (1<<13)

int st[9], mark[9], n, scris;
char buffer[Dim];

void back(int k)
{
  int i;
  
  if (k == n+1){
      for ( i = 1; i <= n; ++i)
          buffer[scris++] = st[i]+'0';
      if (scris > Dim-n){
         fwrite(buffer, 1, scris, stdout);
         scris = 0;
      }
   }
  else
    for ( i = 1; i <= n; ++i)
      if (!mark[i]){
         mark[i] = 1;
         st[k] = i;
         back(k+1);
         mark[i] = 0;
       }
}

int main(){
  
  freopen("permutari.in", "r", stdin);
  freopen("permutari.out", "w", stdout);
  
  scanf("%d", &n);
  back(1);
  
  fwrite(buffer, 1, scris, stdout);
  return 0;
}