#include <iostream>
#include <list>
using namespace std;
void printListPointers(list<int> list);
void printListPointers(list< list<int> > list);
class List {
public:
List(int, int);
list< list<int> > root;
};
List::List(int a, int b) {
list<int> l;
l.push_back(a);
l.push_back(b);
root.push_back(l);
cout << "constructor: root "; printListPointers(root); cout << endl;
cout << "constructor: first node in root "; printListPointers(*(root.begin())); cout << endl;
}
int main() {
List foo = List(2, 3);
cout << "main: root "; printListPointers(foo.root); cout << endl;
cout << "main: first node in root "; printListPointers(*(foo.root.begin())); cout << endl;
return 0;
}
void printListPointers(list<int> l) {
cout << "{";
for (list<int>::iterator it = l.begin(); it != l.end(); it++) {
cout << &*it << ", ";
}
cout << "}" << endl;
}
void printListPointers(list< list<int> > l) {
cout << "{";
for (list< list<int> >::iterator it = l.begin(); it != l.end(); it++) {
cout << &*it << ", ";
}
cout << "}" << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bGlzdD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIHByaW50TGlzdFBvaW50ZXJzKGxpc3Q8aW50PiBsaXN0KTsKdm9pZCBwcmludExpc3RQb2ludGVycyhsaXN0PCBsaXN0PGludD4gPiBsaXN0KTsKCmNsYXNzIExpc3QgewogICAgcHVibGljOgogICAgICAgIExpc3QoaW50LCBpbnQpOwogICAgICAgIGxpc3Q8IGxpc3Q8aW50PiA+IHJvb3Q7Cn07CgpMaXN0OjpMaXN0KGludCBhLCBpbnQgYikgewogICAgbGlzdDxpbnQ+IGw7CiAgICBsLnB1c2hfYmFjayhhKTsKICAgIGwucHVzaF9iYWNrKGIpOwogICAgcm9vdC5wdXNoX2JhY2sobCk7CiAgICBjb3V0IDw8ICJjb25zdHJ1Y3Rvcjogcm9vdCAiOyBwcmludExpc3RQb2ludGVycyhyb290KTsgY291dCA8PCBlbmRsOwogICAgY291dCA8PCAiY29uc3RydWN0b3I6IGZpcnN0IG5vZGUgaW4gcm9vdCAiOyBwcmludExpc3RQb2ludGVycygqKHJvb3QuYmVnaW4oKSkpOyBjb3V0IDw8IGVuZGw7Cn0KCmludCBtYWluKCkgewoJTGlzdCBmb28gPSBMaXN0KDIsIDMpOwogICAgY291dCA8PCAibWFpbjogcm9vdCAiOyBwcmludExpc3RQb2ludGVycyhmb28ucm9vdCk7IGNvdXQgPDwgZW5kbDsKICAgIGNvdXQgPDwgIm1haW46IGZpcnN0IG5vZGUgaW4gcm9vdCAiOyBwcmludExpc3RQb2ludGVycygqKGZvby5yb290LmJlZ2luKCkpKTsgY291dCA8PCBlbmRsOwogICAgCglyZXR1cm4gMDsKfQoKdm9pZCBwcmludExpc3RQb2ludGVycyhsaXN0PGludD4gbCkgewogICAgY291dCA8PCAieyI7CiAgICBmb3IgKGxpc3Q8aW50Pjo6aXRlcmF0b3IgaXQgPSBsLmJlZ2luKCk7IGl0ICE9IGwuZW5kKCk7IGl0KyspIHsKICAgICAgICBjb3V0IDw8ICYqaXQgPDwgIiwgIjsKICAgIH0KICAgIGNvdXQgPDwgIn0iIDw8IGVuZGw7Cn0KCnZvaWQgcHJpbnRMaXN0UG9pbnRlcnMobGlzdDwgbGlzdDxpbnQ+ID4gbCkgewogICAgY291dCA8PCAieyI7CiAgICBmb3IgKGxpc3Q8IGxpc3Q8aW50PiA+OjppdGVyYXRvciBpdCA9IGwuYmVnaW4oKTsgaXQgIT0gbC5lbmQoKTsgaXQrKykgewogICAgICAgIGNvdXQgPDwgJippdCA8PCAiLCAiOwogICAgfQogICAgY291dCA8PCAifSIgPDwgZW5kbDsKfQ==