#include <list>
#include <map>
#include <set>
#include <string>
#include <iostream>
int main()
{
std::list<std::map<std::set<std::string>, int>> l =
{
{
{{"a"}, 0},
{{"b"}, 1},
{{"c"}, 2},
},{
{{"a", "b"}, 3},
{{"a", "c"}, 4},
{{"b", "c"}, 5}
},{
{{"a", "b", "c"}, 6},
}
};
for(auto list_it = l.begin(); list_it != l.end(); ++list_it)
for(auto map_it = list_it->begin(); map_it != list_it->end(); ++map_it)
std::cout << map_it->second << ' ';
std::cout << '\n';
}
I2luY2x1ZGUgPGxpc3Q+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCmludCBtYWluKCkKewogICAgc3RkOjpsaXN0PHN0ZDo6bWFwPHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiwgaW50Pj4gbCA9CiAgICB7CiAgICAgIHsKICAgICAgICB7eyJhIn0sIDB9LAogICAgICAgIHt7ImIifSwgMX0sCiAgICAgICAge3siYyJ9LCAyfSwKICAgICAgfSx7CiAgICAgICAge3siYSIsICJiIn0sIDN9LAogICAgICAgIHt7ImEiLCAiYyJ9LCA0fSwKICAgICAgICB7eyJiIiwgImMifSwgNX0KICAgICAgfSx7CiAgICAgICAge3siYSIsICJiIiwgImMifSwgNn0sCiAgICAgIH0KICAgIH07CgogICAgZm9yKGF1dG8gbGlzdF9pdCA9IGwuYmVnaW4oKTsgbGlzdF9pdCAhPSBsLmVuZCgpOyArK2xpc3RfaXQpCiAgICAgICAgZm9yKGF1dG8gbWFwX2l0ID0gbGlzdF9pdC0+YmVnaW4oKTsgbWFwX2l0ICE9IGxpc3RfaXQtPmVuZCgpOyArK21hcF9pdCkKICAgICAgICAgICAgc3RkOjpjb3V0IDw8IG1hcF9pdC0+c2Vjb25kIDw8ICcgJzsKICAgIHN0ZDo6Y291dCA8PCAnXG4nOwp9Cg==