Cod sursa(job #1637212)

Utilizator serbanSlincu Serban serban Data 7 martie 2016 15:53:02
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#include <algorithm>

using namespace std;

int n;
vector<char> x;
vector< vector<char> > p;

void bkt(int i) {
    x.push_back(i + '1');
    for(int j = 0; j <= i; j ++) {
        char aux = x[i]; x[i] = x[j]; x[j] = aux;
        if(i == n - 1) {
            p.push_back(x);
        }
        else bkt(i + 1);
        aux = x[i]; x[i] = x[j]; x[j] = aux;
    }
    x.pop_back();
}

bool cmp(char A[10], char B[10]) {
    for(int i = 0; i < n; i ++) {
        if(A[i] > B[i]) return true;
        else if(A[i] < B[i]) return false;
    }
}

int main()
{
    ifstream f("permutari.in");
    ofstream g("permutari.out");
    f >> n;
    bkt(0);
    sort(p.begin(), p.end());
    for(int i = 0; i < p.size(); i ++) {
        for(int j = 0; j < n; j ++)
            g << p[i][j] << " ";
        g << "\n";
    }
    return 0;
}