#include <iostream>
#include <vector>
#include <set>
using namespace std;
template <typename Container>
std::ostream& Print(ostream& out, const Container& container);
template <typename Element>
ostream& operator<<(ostream& out, const set<Element>& container) {
out << "{";
Print(out, container);
out << "}";
return out;
}
template <typename Element>
ostream& operator<<(ostream& out, const vector<Element>& container) {
out << "[";
Print(out, container);
out << "]";
return out;
}
template <typename Container>
std::ostream& Print(ostream& out, const Container& container) {
bool isnt_first = false;
for (const auto& element : container) {
if (isnt_first) {
out << ", ";
}
else {
isnt_first = true;
}
out << element;
}
return out;
}
int main() {
//setlocale(LC_ALL, "ru");
const set<string> cats = { "Мурка"s, "Белка"s, "Георгий"s, "Рюрик"s };
cout << cats << endl;
const vector<int> ages = { 10, 5, 2, 12 };
cout << ages << endl;
const vector<vector<string>> a = {
{ "Мурка"s, "Белка"s, "Георгий"s, "Рюрик"s },
{ "Мурка"s, "Белка"s, "Георгий"s, "Рюрик"s },
{ "Мурка"s, "Белка"s, "Георгий"s, "Рюрик"s }
};
cout << a << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c2V0PgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlIDx0eXBlbmFtZSBDb250YWluZXI+CnN0ZDo6b3N0cmVhbSYgUHJpbnQob3N0cmVhbSYgb3V0LCBjb25zdCBDb250YWluZXImIGNvbnRhaW5lcik7CgoKdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnQ+Cm9zdHJlYW0mIG9wZXJhdG9yPDwob3N0cmVhbSYgb3V0LCBjb25zdCBzZXQ8RWxlbWVudD4mIGNvbnRhaW5lcikgewogICAgb3V0IDw8ICJ7IjsKICAgIFByaW50KG91dCwgY29udGFpbmVyKTsKICAgIG91dCA8PCAifSI7CiAgICByZXR1cm4gb3V0Owp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVudD4Kb3N0cmVhbSYgb3BlcmF0b3I8PChvc3RyZWFtJiBvdXQsIGNvbnN0IHZlY3RvcjxFbGVtZW50PiYgY29udGFpbmVyKSB7CiAgICBvdXQgPDwgIlsiOwogICAgUHJpbnQob3V0LCBjb250YWluZXIpOwogICAgb3V0IDw8ICJdIjsKICAgIHJldHVybiBvdXQ7Cn0KCnRlbXBsYXRlIDx0eXBlbmFtZSBDb250YWluZXI+CnN0ZDo6b3N0cmVhbSYgUHJpbnQob3N0cmVhbSYgb3V0LCBjb25zdCBDb250YWluZXImIGNvbnRhaW5lcikgewogICAgYm9vbCBpc250X2ZpcnN0ID0gZmFsc2U7CiAgICBmb3IgKGNvbnN0IGF1dG8mIGVsZW1lbnQgOiBjb250YWluZXIpIHsKICAgICAgICBpZiAoaXNudF9maXJzdCkgewogICAgICAgICAgICBvdXQgPDwgIiwgIjsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlzbnRfZmlyc3QgPSB0cnVlOwogICAgICAgIH0KICAgICAgICBvdXQgPDwgZWxlbWVudDsKICAgIH0KICAgIHJldHVybiBvdXQ7Cn0KCgppbnQgbWFpbigpIHsKCiAgICAvL3NldGxvY2FsZShMQ19BTEwsICJydSIpOwoKICAgIGNvbnN0IHNldDxzdHJpbmc+IGNhdHMgPSB7ICLQnNGD0YDQutCwInMsICLQkdC10LvQutCwInMsICLQk9C10L7RgNCz0LjQuSJzLCAi0KDRjtGA0LjQuiJzIH07CiAgICBjb3V0IDw8IGNhdHMgPDwgZW5kbDsKCiAgICBjb25zdCB2ZWN0b3I8aW50PiBhZ2VzID0geyAxMCwgNSwgMiwgMTIgfTsKICAgIGNvdXQgPDwgYWdlcyA8PCBlbmRsOwoKICAgIGNvbnN0IHZlY3Rvcjx2ZWN0b3I8c3RyaW5nPj4gYSA9IHsKICAgICAgICB7ICLQnNGD0YDQutCwInMsICLQkdC10LvQutCwInMsICLQk9C10L7RgNCz0LjQuSJzLCAi0KDRjtGA0LjQuiJzIH0sCiAgICAgICAgeyAi0JzRg9GA0LrQsCJzLCAi0JHQtdC70LrQsCJzLCAi0JPQtdC+0YDQs9C40LkicywgItCg0Y7RgNC40LoicyB9LAogICAgICAgIHsgItCc0YPRgNC60LAicywgItCR0LXQu9C60LAicywgItCT0LXQvtGA0LPQuNC5InMsICLQoNGO0YDQuNC6InMgfQogICAgfTsKICAgIGNvdXQgPDwgYSA8PCBlbmRsOwp9Cg==
{Белка, Георгий, Мурка, Рюрик}
[10, 5, 2, 12]
[[Мурка, Белка, Георгий, Рюрик], [Мурка, Белка, Георгий, Рюрик], [Мурка, Белка, Георгий, Рюрик]]