#include <array>
#include <iostream>
#include <iterator>
#include <map>
#include <vector>
struct Sample {char value;};
std::vector<std::array<Sample, 3u>> get_triplets(const std::map<int, Sample>& samples)
{
if (samples.size() < 3) {
return {};
}
std::vector<std::array<Sample, 3u>> res;
auto it = samples.begin();
auto it1 = std::next(it);
auto it2 = std::next(it1);
for (; it2 != samples.end(); ++it, ++it1, ++it2) {
res.push_back({{it->second, it1->second, it2->second}});
}
return res;
}
void print(const std::array<Sample, 3u>&t)
{
for (const auto& s : t) {
std::cout << s.value << " ";
}
std::cout << std::endl;
}
int main() {
std::map<int, Sample> samples{
{15, {'a'}},
{21, {'b'}},
{33, {'c'}},
{37, {'d'}},
{49, {'e'}}
};
auto triplets = get_triplets(samples);
for (const auto& triplet : triplets) {
print(triplet);
}
}
I2luY2x1ZGUgPGFycmF5PgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxpdGVyYXRvcj4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHZlY3Rvcj4KCnN0cnVjdCBTYW1wbGUge2NoYXIgdmFsdWU7fTsgCgpzdGQ6OnZlY3RvcjxzdGQ6OmFycmF5PFNhbXBsZSwgM3U+PiBnZXRfdHJpcGxldHMoY29uc3Qgc3RkOjptYXA8aW50LCBTYW1wbGU+JiBzYW1wbGVzKQp7CiAgICBpZiAoc2FtcGxlcy5zaXplKCkgPCAzKSB7CiAgICAgICAgcmV0dXJuIHt9OwogICAgfQogICAgc3RkOjp2ZWN0b3I8c3RkOjphcnJheTxTYW1wbGUsIDN1Pj4gcmVzOwoKICAgIGF1dG8gaXQgPSBzYW1wbGVzLmJlZ2luKCk7CiAgICBhdXRvIGl0MSA9IHN0ZDo6bmV4dChpdCk7CiAgICBhdXRvIGl0MiA9IHN0ZDo6bmV4dChpdDEpOwoKICAgIGZvciAoOyBpdDIgIT0gc2FtcGxlcy5lbmQoKTsgKytpdCwgKytpdDEsICsraXQyKSB7CiAgICAgICAgcmVzLnB1c2hfYmFjayh7e2l0LT5zZWNvbmQsIGl0MS0+c2Vjb25kLCBpdDItPnNlY29uZH19KTsKICAgIH0KICAgIHJldHVybiByZXM7Cn0KCnZvaWQgcHJpbnQoY29uc3Qgc3RkOjphcnJheTxTYW1wbGUsIDN1PiZ0KQp7Cglmb3IgKGNvbnN0IGF1dG8mIHMgOiB0KSB7CgkJc3RkOjpjb3V0IDw8IHMudmFsdWUgPDwgIiAiOwoJfQoJc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKfQoKaW50IG1haW4oKSB7CglzdGQ6Om1hcDxpbnQsIFNhbXBsZT4gc2FtcGxlc3sKCQl7MTUsIHsnYSd9fSwKCQl7MjEsIHsnYid9fSwKCQl7MzMsIHsnYyd9fSwKCQl7MzcsIHsnZCd9fSwKCQl7NDksIHsnZSd9fQoJfTsKCQoJYXV0byB0cmlwbGV0cyA9IGdldF90cmlwbGV0cyhzYW1wbGVzKTsKCiAgICBmb3IgKGNvbnN0IGF1dG8mIHRyaXBsZXQgOiB0cmlwbGV0cykgewogICAgCXByaW50KHRyaXBsZXQpOwogICAgfQp9Cg==