fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4.  
  5. int main()
  6. {
  7. std::vector<int> levels;
  8. std::string hangy;
  9.  
  10. std::string name;
  11. for (int level, address; std::cin >> level >> name >> address;) {
  12. while (!levels.empty() && levels.back() >= level)
  13. levels.pop_back(), hangy.erase(hangy.size()-2);
  14. levels.push_back(level);
  15. hangy += name + ".";
  16. std::cout << address << ": " << hangy.substr(0, hangy.size()-1) << '\n';
  17. }
  18. }
  19.  
Success #stdin #stdout 0s 2992KB
stdin
1 A 123
2 B 234
3 C 345
3 D 456
4 E 567
3 F 678
4 E 789
stdout
123: A
234: A.B
345: A.B.C
456: A.B.D
567: A.B.D.E
678: A.B.F
789: A.B.F.E