Cod sursa(job #539915)

Utilizator feelshiftFeelshift feelshift Data 23 februarie 2011 14:47:24
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
// http://infoarena.ro/problema/combinari
#include <fstream>
using namespace std;

#define maxSize 20

ifstream in("combinari.in");
ofstream out("combinari.out");

int n;  // combinari de n
int k;  // luate cate k
int number[maxSize];

void back(int level);
bool check(int position);
void write();

int main() {
    in >> n >> k;
    back(1);

    return (0);
}

void back(int level) {
    if(level > k)
        write();
    else
        for(int i=1;i<=n;i++) {
            number[level] = i;

            if(check(level))
                back(level+1);
        }
}

bool check(int position) {
    if(position >= 1 && number[position] > number[position-1])
        return true;
    else
        return false;
}

void write() {
    for(int i=1;i<=k;i++)
        out << number[i] << " ";
    out << "\n";
}