fork download
  1.  
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4.  
  5. vector<int> adj[101];
  6. int visited[101];
  7. int dis[101];
  8. int par[101];
  9. map<string, int> c;
  10. int cnt=1;
  11.  
  12. int bfs(int s, int d){
  13. queue<int> q;
  14. q.push(s);
  15. visited[s] = 1;
  16. dis[s] = 0;
  17. par[s] = -1;
  18.  
  19. while(!q.empty()){
  20. int u = q.front();
  21. q.pop();
  22.  
  23. for(int i=0; i<adj[u].size(); i++){
  24. int v = adj[u][i];
  25. if(visited[v]==0){
  26. q.push(v);
  27. visited[v] = 1;
  28. dis[v] = dis[u]+1;
  29. par[v] = u;
  30. }
  31. }
  32. }
  33.  
  34. return dis[d];
  35. }
  36.  
  37.  
  38.  
  39. int main(){
  40. int n, e;
  41. cin>>n>>e;
  42. for(int i=1; i<=e; i++){
  43. string us, vs;
  44. int u, v;
  45. cin>>us>>vs;
  46. if(c[us]==0){
  47. c[us] = cnt;
  48. cnt++;
  49. }
  50. if(c[vs]==0){
  51. c[vs] = cnt;
  52. cnt++;
  53. }
  54. u = c[us];
  55. v = c[vs];
  56. adj[u].push_back(v);
  57. adj[v].push_back(u);
  58. }
  59.  
  60. string ss, ds;
  61. int s,d;
  62. cin>>ss>>ds;
  63. s = c[ss];
  64. d = c[ds];
  65. int res = bfs(s, d);
  66.  
  67. cout<<res<<endl;
  68.  
  69. }
  70.  
  71. /*
  72. 8 9
  73. DAC CTG
  74. DAC RJH
  75. DAC COM
  76. RJH CTG
  77. COM PRJ
  78. CTG DNJ
  79. GOP SHY
  80. SHY DNJ
  81. GOP RJH
  82. DAC DNJ
  83. */
Success #stdin #stdout 0.01s 5304KB
stdin
Standard input is empty
stdout
0