Cod sursa(job #1813705)

Utilizator andreea_zahariaAndreea Zaharia andreea_zaharia Data 23 noiembrie 2016 11:05:50
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

using namespace std;

ifstream fin ("permutari.in");
ofstream fout ("permutari.out");

const int NMAX = 10;

int N;
int sol[NMAX];

void print (int n)  {
    for (int i = 1; i <= n; i++) {
        fout << sol[i] << " ";
    }
    fout << '\n';
}

bool valid (int n) {
    int vc[NMAX];
    for (int i = 1; i <= N; vc[i] = 0, i++);
    for (int i = 1; i <= n; i++) {
        if (vc[sol[i]] == 1) {
            return false;
        }
        vc[sol[i]] = 1;
    }

    return true;
}

void bkt (int lvl) {
    if (lvl == N + 1) {
        print (N);
    }
    for (int i = 1; i <= N; i++) {
        sol[lvl] = i;
        if (valid (lvl))
            bkt (lvl + 1);
    }
}

int main () {
    fin >> N;
    bkt (1);
    return 0;
}