Cod sursa(job #1605247)

Utilizator TeodorCotetCotet Teodor TeodorCotet Data 18 februarie 2016 21:05:32
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 18;

int n; int k;

int v[NMAX + 1];
bitset<NMAX + 1> vis;

void print() {

	for(int i = 1; i <= k ;++i)
		fout << v[i] << ' ' ;

	fout << '\n';
}

void backtrack(int p) {

	if(p == k + 1)
		print();
	else 
		for(int i = v[p - 1] + 1; i <= n; ++i)
			if(vis[i] == false) {

				vis[i] = true;
				v[p] = i;
				backtrack(p + 1);
				vis[i] = false;
			}
}

int main() {

	fin >> n >> k;

	v[0] = 0;

	backtrack(1);

	return 0;
}