Cod sursa(job #1615447)

Utilizator rares96cheseliRares Cheseli rares96cheseli Data 26 februarie 2016 16:19:26
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.19 kb
#include <fstream>
#include <time.h>
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cstdlib>
#include <vector>
#include <bitset>
#include <queue>
#include <map>
#include <set>
#include <cmath>
#include <iomanip>
#define pb push_back
#define mp make_pair
#define sortvi(a) sort(a.begin(), a.end())
#define FOR(i, start, final) for (int i=start; i<=final; ++i)
#define ROF(i, start, final) for (int i=start; i>=final; --i)

using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef pair < int, int> pi;
typedef vector< int > vi;
typedef vector< pair< int, int > > vpi;

ifstream f("permutari.in");
ofstream g("permutari.out");

int N, st[10], used[10];

void print() {
    for (int i = 1; i <= N; ++i) {
        g<<st[i]<<' ';
    }
    g<<'\n';
}

void back(int vf) {
    if (vf - 1 == N) {
        print();
        return;
    }

    for (int i = 1; i <= N; ++i) {
        if (!used[i]) {
            used[i] = 1;
            st[vf] = i;
            back(vf + 1);
            used[i] = 0;
        }
    }
}

int main()
{
    f.sync_with_stdio(false);
    f>>N;
    back(1);
    return 0;
}