Cod sursa(job #2316368)

Utilizator mariusgrafuMarius Grafu mariusgrafu Data 11 ianuarie 2019 17:09:17
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

void print(vector<int> v) {
    for(int i = 0; i < v.size(); ++i){
        out << v[i] << " ";
    }
    out << "\n";
}

bool check(vector<int> v, int j) {
    for(int i = 0; i < j; ++i) {
        if(v[i] == v[j]) return false;
    }
    return true;
}

void perm(int n, int p = 0) {
    static vector<int> v(n, 0);
    for(int i = 0; i < n; ++i){
        v[p] = i + 1;
        if(check(v, p)){
            if(p == n - 1){
                print(v);
            }else{
                perm(n, p + 1);
            }
        }
    }
}

int main()
{
    int n;
    in >> n;
    perm(n);
    return 0;
}