#include <iostream>
#include <vector>
int count[19] = {0};
void diceSumHelper(int n, int currentSum, std::vector<int>& path) {
if (n == 0) {
// Print the path (combination of dice rolls)
// for (int roll : path) {
// std::cout << roll << " ";
// }
// std::cout << std::endl;
count[currentSum] ++;
return;
}
// Roll the dice from 1 to 6
for (int i = 1; i <= 6; ++i) {
path.push_back(i);
diceSumHelper(n - 1, currentSum + i, path);
path.pop_back();
}
}
void diceSum(int n) {
std::vector<int> path;
diceSumHelper(n, 0, path);
}
int main() {
int numDice = 3;
diceSum(numDice);
for (int c = 0; c <= 18; c++) {
std::cout << count[c] << " ";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKaW50IGNvdW50WzE5XSA9IHswfTsKdm9pZCBkaWNlU3VtSGVscGVyKGludCBuLCBpbnQgY3VycmVudFN1bSwgc3RkOjp2ZWN0b3I8aW50PiYgcGF0aCkgewogICAgaWYgKG4gPT0gMCkgewogICAgICAgIAogICAgICAgICAgICAvLyBQcmludCB0aGUgcGF0aCAoY29tYmluYXRpb24gb2YgZGljZSByb2xscykKICAgICAgICAgICAgLy8gZm9yIChpbnQgcm9sbCA6IHBhdGgpIHsKICAgICAgICAgICAgLy8gICAgIHN0ZDo6Y291dCA8PCByb2xsIDw8ICIgIjsKICAgICAgICAgICAgLy8gfQogICAgICAgICAgICAvLyBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsOwogICAgICAgICAgICBjb3VudFtjdXJyZW50U3VtXSArKzsgCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8vIFJvbGwgdGhlIGRpY2UgZnJvbSAxIHRvIDYKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IDY7ICsraSkgewogICAgICAgIHBhdGgucHVzaF9iYWNrKGkpOwogICAgICAgIGRpY2VTdW1IZWxwZXIobiAtIDEsIGN1cnJlbnRTdW0gKyBpLCBwYXRoKTsKICAgICAgICBwYXRoLnBvcF9iYWNrKCk7CiAgICB9Cn0KCnZvaWQgZGljZVN1bShpbnQgbikgewogICAgc3RkOjp2ZWN0b3I8aW50PiBwYXRoOwogICAgZGljZVN1bUhlbHBlcihuLCAwLCBwYXRoKTsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbnVtRGljZSA9IDM7CiAgICBkaWNlU3VtKG51bURpY2UpOwogICAgCiAgICBmb3IgKGludCBjID0gMDsgYyA8PSAxODsgYysrKSB7CiAgICAgICAgIHN0ZDo6Y291dCA8PCBjb3VudFtjXSA8PCAiICI7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=