Cod sursa(job #1446068)

Utilizator mouse_wirelessMouse Wireless mouse_wireless Data 31 mai 2015 20:05:42
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <cstdio>
#include <cassert>
#include <algorithm>
#define _submit
#ifdef _submit
#define InFile "combinari.in"
#define OutFile "combinari.out"
#else
#define InFile "fis.in"
#define OutFile "fis.out"
#endif

void bkt(int n, int m) {
	int st[20];
	st[0] = 0;
	int k = 0;
	while (k > -1) {
		bool OK = false;
		while (st[k] < n && !OK) {
			OK = true;
			st[k]++;
			for (int i = 0; i < k; i++)
			if (st[i] == st[k]) {
				OK = false;
				break;
			}
		}
		if (OK) {
			if (k + 1 == m) {
				for (int i = 0; i < m; i++)
					printf("%d ", st[i]);
				printf("\n");
			}
			else {
				k++;
				st[k] = 0;
			}
		}
		else
			k--;
	}
}

int main() {
	assert(freopen(InFile, "r", stdin));
	assert(freopen(OutFile, "w", stdout));
	int n, m;
	scanf("%d%d", &n, &m);
	bkt(n, m);
	return 0;
}