Cod sursa(job #1590654)

Utilizator AnesthesicChereches Sergiu Alexandru Anesthesic Data 5 februarie 2016 13:41:33
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>
#include <fstream>
using namespace std;

ofstream fout ("permutari.out");

struct permutare{
    int number;
    int solution[9];
    bool seen[9];
};

void read_data (permutare &content){
    ifstream fin ("permutari.in");
    fin >> content.number;
    for (int i = 1; i <= content.number; i++)
        content.seen[i] = false;
}

void print_sol (permutare content){
    for (int i = 1; i <= content.number; i++)
        fout << content.solution[i] << " ";
    fout << "\n";
}

void backtracking (permutare &content, int k){
    if (k > content.number)
        print_sol (content);
    for (int i = 1; i <= content.number; i++){
        if (!content.seen[i]){
            content.seen[i] = true;
            content.solution[k] = i;
            backtracking (content, k+1);
            content.seen[i] = false;
        }
    }
}

int main(){
    permutare content;
    read_data(content);
    backtracking (content, 1);
    return 0;
}