Cod sursa(job #1553054)

Utilizator MAlexandruMatei Alexandru MAlexandru Data 19 decembrie 2015 10:25:57
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <stdio.h>

using namespace std;
FILE*fin= fopen ("permutari.in","r");
FILE*fout = fopen("permutari.out", "w");

int a[10],sol[10],n;

void afis(){

for (int i=1;i<=n;i++)fprintf(fout,"%d ", a[sol[i]]);
fprintf(fout,"\n");}


bool ok (int k)
{
    for (int i=1;i<k;i++)if (sol[i]==sol[k])return false;
    return true;
}

void backt (int k){
int i;
if (k>n)afis();
for (i=1;i<=n;i++)
{
    sol[k]=i;
    if (ok(k))backt(k+1);
}

}


int main()
{
    fscanf (fin , "%d", &n);
    for (int i=1;i<=n;i++)a[i]=i;
    backt(1);
    fclose(fin);fclose(fout);
    return 0;
}