Cod sursa(job #1069480)

Utilizator IeewIordache Bogdan Ieew Data 30 decembrie 2013 02:35:02
Problema Submultimi Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>

using namespace std;

#define DEBUG false

#if DEBUG
#include <iostream>
#define INFILE "/Users/biordach/Documents/Xcode Projects/training/training/submultimi.in"
#define __OUT cout
#else
#define INFILE "submultimi.in"
#define OUTFILE "submultimi.out"
ofstream __OUT(OUTFILE);
#endif

int n;
int a[32];
int used[32];

void readInput();
void solve(int);
void printOutput();

int main(int argc, const char * argv[])
{
    readInput();
    solve(0);
//  printOutput();

#if DEBUG == false
    __OUT.close();
#endif
    
    return 0;
}

void readInput(){
    ifstream in(INFILE);
    in>>n;
    in.close();
}

void solve(int x){
    if(x)
        printOutput();
    
    if(x == n) {
        return;
    }
    for(int i=x + 1; i<= n; i++){
        if (!used[i]){
            a[x] = i;
            used[i] = 1;
            solve(x+1);
            used[i] = 0;
            a[x] = 0;
        }
    }
}

void printOutput(){
    for(int i=0;i < n;i++){
        if(a[i]){
            __OUT<<a[i]<<' ';
        }
    }
    __OUT<<'\n';
}