#include <iostream>
#include <map>
#include <vector>
int main() {
std::vector<std::pair<int, int>> ranges {
{0, 10},
{20, 25},
{50, 60}
};
std::map<int, int> counters;
for (int i = 0; i < 100000; ++i) {
const int range_index = rand() % ranges.size();
const auto& range = ranges[range_index];
const int number = rand() % (range.second - range.first + 1) + range.first;
++counters[number];
}
for (const auto& item : counters) {
std::cout << item.first << ": " << item.second << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8dmVjdG9yPgoKaW50IG1haW4oKSB7CglzdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiByYW5nZXMgewoJCXswLCAxMH0sCgkJezIwLCAyNX0sCgkJezUwLCA2MH0KCX07CgkKCXN0ZDo6bWFwPGludCwgaW50PiBjb3VudGVyczsKCQoJZm9yIChpbnQgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgewoJCWNvbnN0IGludCByYW5nZV9pbmRleCA9IHJhbmQoKSAlIHJhbmdlcy5zaXplKCk7CgkJY29uc3QgYXV0byYgcmFuZ2UgPSByYW5nZXNbcmFuZ2VfaW5kZXhdOwoJCWNvbnN0IGludCBudW1iZXIgPSByYW5kKCkgJSAocmFuZ2Uuc2Vjb25kIC0gcmFuZ2UuZmlyc3QgKyAxKSArIHJhbmdlLmZpcnN0OwoJCSsrY291bnRlcnNbbnVtYmVyXTsKCX0KCQoJZm9yIChjb25zdCBhdXRvJiBpdGVtIDogY291bnRlcnMpIHsKCQlzdGQ6OmNvdXQgPDwgaXRlbS5maXJzdCA8PCAiOiAiIDw8IGl0ZW0uc2Vjb25kIDw8IHN0ZDo6ZW5kbDsKCX0KCQoJcmV0dXJuIDA7Cn0=