Cod sursa(job #1563550)

Utilizator AetheryonStefan Bereghici Aetheryon Data 6 ianuarie 2016 11:21:09
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.1 kb
#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
const char* IN = "permutari.in";
const char* OUT = "permutari.out";
const int MAX_SIZE = 10;

int n;
bool used[MAX_SIZE];

class StaticStack {

    private :
        int a[MAX_SIZE];
        int size;

    public :
        StaticStack(){};
        ~StaticStack(){};

        int getItem(int pos){
            return a[pos];
        }

        void push(int value){
            a[++size] = value;
        }

        void print(){
            for (int i=1;i<=size;++i)
                cout<<a[i]<<" ";
            cout<<endl;
        }

        void pop(){
        --size;
        }

    } Stack;

void nextPermutation(int pos){
    if (pos>n){
        Stack.print();
        return;
    }
    for (int i=1;i<=n;++i)
        if (!used[i]){
            used[i] = 1;
            Stack.push(i);
            nextPermutation(pos+1);
            Stack.pop();
            used[i] = 0;
        }
}

int main(void){
    ifstream cin(IN);
    ofstream out(OUT);
    cin>>n;
    nextPermutation(1);
    return 0;
}