Cod sursa(job #275773)

Utilizator Addy.Adrian Draghici Addy. Data 10 martie 2009 17:39:34
Problema Generare de permutari Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>

int s[100];
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<=n; 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;
}