#include <iostream>
#include <vector>
#include <cstdint>
#include <map>
typedef std::vector<std::uintmax_t> DType;
typedef std::map<std::uintmax_t, std::uintmax_t> MType;
DType SepDigit(std::uintmax_t N, std::uintmax_t R) {
DType D;
while (N != 0) {
D.push_back(N % R);
N /= R;
}
return D;
}
MType MakeHoge(const std::uintmax_t& L,std::uintmax_t R) {
MType M;
for (std::uintmax_t i = 0; i <= L; i++) {
auto S = SepDigit(i, R);
std::uintmax_t X = 0;
for (auto o : S) { X += o; }
M[X]++;
}
return M;
}
int main() {
MType R;
std::uintmax_t L = 9999;
std::uintmax_t Radix = 10;
R = MakeHoge(L,Radix);
for (auto& o : R) {
std::cout << o.first << ':' << o.second << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y3N0ZGludD4KI2luY2x1ZGUgPG1hcD4KCnR5cGVkZWYgc3RkOjp2ZWN0b3I8c3RkOjp1aW50bWF4X3Q+IERUeXBlOwp0eXBlZGVmIHN0ZDo6bWFwPHN0ZDo6dWludG1heF90LCBzdGQ6OnVpbnRtYXhfdD4gTVR5cGU7CkRUeXBlIFNlcERpZ2l0KHN0ZDo6dWludG1heF90IE4sIHN0ZDo6dWludG1heF90IFIpIHsKCURUeXBlIEQ7CgoJd2hpbGUgKE4gIT0gMCkgewoJCUQucHVzaF9iYWNrKE4gJSBSKTsKCQlOIC89IFI7Cgl9CgoJcmV0dXJuIEQ7Cn0KTVR5cGUgTWFrZUhvZ2UoY29uc3Qgc3RkOjp1aW50bWF4X3QmIEwsc3RkOjp1aW50bWF4X3QgUikgewoJTVR5cGUgTTsKCWZvciAoc3RkOjp1aW50bWF4X3QgaSA9IDA7IGkgPD0gTDsgaSsrKSB7CgkJYXV0byBTID0gU2VwRGlnaXQoaSwgUik7CgkJc3RkOjp1aW50bWF4X3QgWCA9IDA7CgkJZm9yIChhdXRvIG8gOiBTKSB7IFggKz0gbzsgfQoJCU1bWF0rKzsKCX0KCXJldHVybiBNOwp9CgppbnQgbWFpbigpIHsKCglNVHlwZSBSOwoJc3RkOjp1aW50bWF4X3QgTCA9IDk5OTk7CglzdGQ6OnVpbnRtYXhfdCBSYWRpeCA9IDEwOwoKCVIgPSBNYWtlSG9nZShMLFJhZGl4KTsKCglmb3IgKGF1dG8mIG8gOiBSKSB7CgkJc3RkOjpjb3V0IDw8IG8uZmlyc3QgPDwgJzonIDw8IG8uc2Vjb25kIDw8IHN0ZDo6ZW5kbDsKCX0KCglyZXR1cm4gMDsKCgp9