Cod sursa(job #1845554)

Utilizator medicinedoctoralexandru medicinedoctor Data 11 ianuarie 2017 17:25:35
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <vector>
#include <fstream>
#include <algorithm>

using namespace std;

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

int c=0;
vector <int> a;
vector <bool> b;

int srch()
{
    for (int i=0; i<a.size(); i++)
        if (b[i]) return i;
}

void bk(int k)
{
    if (k==a.size())
    {
        for (int i=0; i<a.size(); i++)
            cout << a[i]+1 << ' ';
        cout << '\n';
        return;
    }
    for (a[k]=srch(); a[k]<a.size(); a[k]++)
        if (b[a[k]])
        {
            b[a[k]]=false;
            bk(k+1);
            b[a[k]]=true;
        }
}

main()
{
    //a.resize(32);
    int n;
    cin >> n;
    a.resize(n);
    b.resize(a.size());
    fill(b.begin(),b.end(),true);
    bk(0);
}