Cod sursa(job #1943561)

Utilizator david.sachelarieDavid Sachelarie david.sachelarie Data 28 martie 2017 17:52:20
Problema Generare de permutari Scor 80
Compilator c Status done
Runda Arhiva educationala Marime 0.8 kb
#include <stdio.h>
#include <stdlib.h>
int v[8],frecv[9];
int main()
{
    FILE*fin,*fout;
    int n,j,i,flag=0,flag2;
    fin = fopen("permutari.in" ,"r");
    fout = fopen("permutari.out" ,"w");
    fscanf(fin, "%d" ,&n);
    for(i=0;i<n;i++)
      v[i]=i+1;
    while(flag==0){
      flag2=0;
      for(i=0;i<n && flag2==0;i++){
        frecv[v[i]]++;
        if(frecv[v[i]]==2)
          flag2=1;
      }
      if(flag2==0){
        /*afisare*/
        for(i=0;i<n;i++)
          fprintf(fout, "%d " ,v[i]);
        fprintf(fout, "\n");
      }
      j=n-1;
      while(v[j]==n){
        v[j]=1;
        j--;
      }
      if(j==-1)
        flag=1;
      else
        v[j]++;
      for(i=1;i<=n;i++)
        frecv[i]=0;
    }
    fclose(fin);
    fclose(fout);
    return 0;
}