Cod sursa(job #1523189)

Utilizator adi_ispas95FMI - Adrian Ispas adi_ispas95 Data 12 noiembrie 2015 14:35:39
Problema Generare de permutari Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.69 kb
#include<stdlib.h>
#include<stdio.h>

int a[20], n, viz[20];

void solutie(FILE* out)
{
  int i;
  for(i = 1; i <= n; i++)
      fprintf(out,"%d ", a[i]);
  fprintf(out,"\n");
}

void back(int top, FILE* out)
{
  int i;
  if(top == n + 1)
     solutie(out); 
  else
    for(i = 1; i <=n; i++)
	if(!viz[i])
	{
          viz[i] = 1;
	  a[top] = i;
          if(!fork())
	  {
	    back(top + 1, out);
            exit(0);
   	  }
          else
            {
	     wait(NULL); 
             viz[i] = 0;
            }
	}
}

int main()
{   
    FILE* in = fopen("permutari.in","r");
    FILE* out = fopen("permutari.out","w");
    //printf("N = ");
    fscanf(in,"%d",&n);

    back(1,out);

    return 0;
}