3747 cin >> h1 >> h2 >> n;
3748 unordered_map<string, node> um;
3749 for(
int i = 0; i < n; i++) {
3752 um[address].address = address;
3753 cin >> um[address].data >> um[address].next;
3757 for(
string addr = h1; addr !=
"-1"; addr = um[addr].next) {
3758 l1.push_back(um[addr]);
3760 for(
string addr = h2; addr !=
"-1"; addr = um[addr].next) {
3761 l2.push_back(um[addr]);
3763 if(l1.size() < l2.size()) {
3766 l2 = vector(l2.rbegin(), l2.rend());
3768 for(
int cnt = 0, i1 = 0, i2 = 0; i1 < l1.size() || i2 < l2.size(); cnt++, cnt %= 3) {
3770 if(i1 < l1.size()) {
3771 ans.push_back(l1[i1++]);
3774 if(i2 < l2.size()) {
3775 ans.push_back(l2[i2++]);
3779 for(
int i = 0; i < ans.size(); i++) {
3780 cout << ans[i].address <<
' ' << ans[i].data <<
' ' << (i + 1 < ans.size() ? ans[i + 1].address :
"-1") << endl;