Cod sursa(job #280542)

Utilizator Addy.Adrian Draghici Addy. Data 13 martie 2009 13:56:55
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>

int s[9];
int n,k;

FILE *f = fopen("permutari.in","r");
FILE *g = fopen("permutari.out","w");

int cont(int k) {
  for (int i=1; i<k; i++)
    if (s[i] == s[k])
      return 0;
  return 1;
}

void sol() {
  for (int i=1; i<=k; i++)
    fprintf(g,"%d ",s[i]);
  fprintf(g,"\n");
}

int main() {

  fscanf(f,"%d",&n);

  k = 1;
  s[k] = 0;

  while (k > 0) {
    if (s[k] < n) {
      s[k]++;
      if ( cont(k) )
	if (k==n)
	  sol();
	else {
	  k++;
	  s[k] = 0;
	}

    }
    else
      k--;
  }

  fclose(f);
  fclose(g);

  return 0;
}