fork download
  1. #include<iostream>
  2. #include<string>
  3. #include<map>
  4. #include<set>
  5.  
  6. void parse(std::string str, std::map<int, int> &myMap)
  7. {
  8. size_t pos = str.find('-');
  9. std::string str1 = str.substr(0, pos);
  10. str = str.substr(pos + 1, (str.size() - 1));
  11. if(myMap.find(std::stoi(str1))!=myMap.end() || myMap[std::stoi(str1)] < std::stoi(str))
  12. myMap[std::stoi(str1)] = std::stoi(str);
  13. }
  14. void sort(std::map<int, int> &myMap)
  15. {
  16. std::set<int>mySet;
  17. for(auto&it_map:myMap)mySet.insert(it_map.second);
  18. for (auto it_set = mySet.crbegin(); it_set != mySet.crend(); ++it_set)
  19. for(auto&it_map:myMap)
  20. if (*it_set == it_map.second) std::cout << it_map.first << "-" << *it_set << "\n";
  21. }
  22.  
  23. int main()
  24. {
  25. std::map<int, int>myMap;
  26. std::set<int>myset;
  27. for (int i = 0; i < 5; ++i)
  28. {
  29. std::string str;
  30. std::cin >> str;
  31. parse(str, myMap);
  32. }
  33. sort(myMap);
  34.  
  35. return 0;
  36. }
Success #stdin #stdout 0s 3420KB
stdin
1-2
2-3
3-4
1-4
2-5
stdout
2-5
1-4
3-4