Cod sursa(job #1525931)

Utilizator kassay_akosKassay Akos kassay_akos Data 15 noiembrie 2015 18:35:44
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <cstdio>
#include <cstring>
using namespace std;

const int MAX = 20 ;
int n, v[MAX];

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

bool valid(int k);
bool solutie(int k);
void afisare();
void bk(int k);

int main()
{
    freopen("permutari.in","r",stdin);
	scanf("%d",&n);
    bk(1);
    fclose(stdin);
    fclose(f);
    return 0;
}

void bk(int k) {
    int i;
    for (i = 1; i<=n; i++) {
        v[k] = i;
        if (valid(k)) {
            if (solutie(k))     afisare();
            else                bk(k+1);
        };
    }
}

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

bool solutie(int k) {
    return n==k ;
}

void afisare() {
    for(int i=1;i<=n;i++)
        fprintf(f,"%d ",v[i]);
    fprintf(f,"\n");
}