Cod sursa(job #556031)

Utilizator sodamngoodSo Damn Good sodamngood Data 15 martie 2011 21:33:45
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
#define maxn 10

FILE *f1, *f2;
int N;
int viz[maxn];
vector<int> sol;

void back(int lev) {
    if(lev == N + 1) {
         for(int i=0; i<sol.size(); i++) {
              fprintf(f2, "%d ", sol[i]);
         } fprintf(f2, "\n");
    }
    else {
         for(int i=1; i<=N; i++) {
              if(!viz[i]) {
                   viz[i] = 1;
                   sol.push_back(i);

                   back(lev + 1);

                   viz[i] = 0;
                   sol.pop_back();
              }
         }
    }
}

int main() {
    f1=fopen("permutari.in", "r"), f2=fopen("permutari.out", "w");

    fscanf(f1, "%d\n", &N);

    back(1);

    fclose(f1); fclose(f2);
    return 0;
}