Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2020
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. #include <iostream>
  2. #include <map>
  3. #include <vector>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8.  
  9. int main()
  10. {
  11. int Q;
  12. cin >> Q;
  13.  
  14.  
  15. map <int, vector<string>> buses;
  16. vector<string> current_bus_names;
  17.  
  18. string stop_name;
  19.  
  20. // делаем дополнительный map для поиска значения по ключу(наоборот нельзя) и переставляем местами значение и ключ, для использования функции find.
  21.  
  22. map<vector<string>, int> reverse_buses;
  23. vector<string> temp;
  24.  
  25. int k = 0; // счетчик для количества автобусов
  26. for (int i = 0; i < Q; ++Q)
  27. {
  28.  
  29.  
  30. int stop_count;
  31.  
  32. cin >> stop_count;
  33.  
  34. current_bus_names.clear(); // очистка вектора для записи последующих названий остановок
  35.  
  36. for (int i = 1; i <= stop_count; ++i)
  37. {
  38.  
  39. cin >> stop_name;
  40.  
  41. current_bus_names.push_back(stop_name);
  42.  
  43. }
  44.  
  45. for (auto item : buses)
  46. {
  47. temp.clear();
  48.  
  49. for (auto names : item.second)
  50. {
  51. temp.push_back(names);
  52.  
  53. }
  54. reverse_buses.emplace(temp, item.first);
  55.  
  56. }
  57.  
  58. if (reverse_buses.find(current_bus_names) != reverse_buses.end())
  59. {
  60. k++;
  61. buses[k] = current_bus_names;
  62. cout << "New bus " << k << endl;
  63. }
  64. else
  65. {
  66. cout << "Already exists for" << reverse_buses.find(current_bus_names)->second << endl;
  67. }
  68.  
  69.  
  70.  
  71.  
  72. }
  73.  
  74. return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement