Website Summary Files Commits Branches @commit @diff @stats
path: root / Week13 / Exercise11.cpp
blob: 2f29d38eca434d5916e139c7b8d454459b409274 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>

void threeChildren(unsigned a, unsigned b, unsigned c, unsigned prod) {
	if (a * b * c == prod) {
		std::cout << a << ' ' << b << ' ' << c << std::endl;
		return;
	}

	if (b + 1 < c - 1)
		threeChildren(a, b + 1, c - 1, prod);
	if (b + 1 < c - 2)
		threeChildren(a + 1, b + 1, c - 2, prod);
}

void threeChildren(unsigned sum, unsigned prod) {
	threeChildren(1, 1, sum - 2, prod);
}

int main() {
	unsigned sum, prod;
	std::cin >> sum >> prod;

	threeChildren(sum, prod);

	return 0;
}