Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <queue>
  5. #include <map>
  6. #include <unordered_map>
  7. using namespace std;
  8.  
  9. typedef long long ll;
  10.  
  11.  
  12.  
  13. int main()
  14. {
  15. int n;
  16. cin >> n;
  17. string s[3];
  18.  
  19. unordered_map<string, vector<string>>g;
  20. map<string, int> d;
  21. for (int i = 0; i < n; ++i)
  22. {
  23.  
  24. for (int j = 0; j < 3; ++j)
  25. {
  26. cin >> s[j];
  27. d[s[j]] = -1;
  28. }
  29. g[s[0]].push_back(s[1]), g[s[0]].push_back(s[2]);
  30. g[s[1]].push_back(s[0]), g[s[1]].push_back(s[2]);
  31. g[s[2]].push_back(s[0]), g[s[2]].push_back(s[1]);
  32. }
  33. queue<string>q;
  34. if (d.find("Isenbaev") != d.end()) {
  35. d["Isenbaev"] = 0;
  36. q.push("Isenbaev");
  37. }
  38.  
  39. while (!q.empty())
  40. {
  41. string v = q.front();
  42. q.pop();
  43.  
  44. for (int i = 0; i < g[v].size(); ++i)
  45. {
  46. if (d[g[v][i]] == -1)
  47. {
  48. d[g[v][i]] = d[v] + 1;
  49. q.push(g[v][i]);
  50. }
  51. }
  52. }
  53. for (auto i : d)
  54. {
  55. cout << i.first << ' ';
  56. if (i.second == -1)
  57. {
  58. cout << "undefined" << '\n';
  59. }
  60. else
  61. cout << i.second << '\n';
  62. }
  63. return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement