Cod sursa(job #1184297)

Utilizator ArmandNMArmand Nicolicioiu ArmandNM Data 12 mai 2014 00:06:28
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
//GENERARE PERMUTARI

#include <fstream>
using namespace std;
ifstream f("back.in");
ofstream g("back.out");

int N,used[1000],sol[1000],v[1000];

void afisare()
{
    for (int i = 1; i <= N; ++i)
    {
        g << v[ sol[i] ] << " ";
    }
    g << '\n';
}

void back_tracking(int k)
{
    if (k == N+1)
    {
        afisare();
    }

    else
    for (int i = 1; i <= N; ++i)
    {
        if (used[i] == 0)
        {
            sol[k] = i;
            used[i] = 1;
            back_tracking(k+1);
            used[i] = 0;
        }
    }
}

int main()
{
    f >> N;

    for (int i = 1; i <= N; ++i)
    {
        f >> v[i];
    }

    back_tracking(1);

    f.close();
    g.close();
    return 0;
}