Cod sursa(job #629235)

Utilizator MariusMarius Stroe Marius Data 2 noiembrie 2011 21:59:03
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;

const char iname[] = "permutari.in";
const char oname[] = "permutari.out";

void go(int i, int n, vector <int>& vect, vector <int>& set, FILE *fo) {
    if (i == n) {
        for (int j = 0; j < n; ++ j)
            fprintf(fo, "%d ", vect[j] + 1);
        fprintf(fo, "\n");
    } else {
        for (int j = 0; j < n; ++ j) if (!set[j]) {
            vect[i] = j;
            set[j] = true;
            go(i + 1, n, vect, set, fo);
            set[j] = false;
        }
    }
}

int main(void) {
    int n;
    fscanf(fopen(iname, "r"), "%d", &n);
    FILE *fo = fopen(oname, "w");
    vector <int> vect(n), set(n, false);
    go(0, n, vect, set, fo);
    fclose(fo);
}