Advertisement
SuitNdtie

Path

Mar 14th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<queue>
  3. #include<vector>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     int n,m;
  9.     scanf("%d %d",&n,&m);
  10.    
  11.     vector<int> adj[n+1];
  12.     for(int i=0;i<m;i++){
  13.         int u,v;
  14.         scanf("%d %d",&u,&v);
  15.         adj[u].push_back(v);
  16.         adj[v].push_back(u);
  17.     }
  18.    
  19.     int dist[n+1][n+1];for(int i=0;i<=n;i++)for(int j=0;j<=n;j++)dist[i][j] = -1;
  20.    
  21.    
  22.     for(int i=1;i<=n;i++){
  23.         queue<int> q;
  24.         dist[i][i] = 0;
  25.         q.push(i);
  26.        
  27.         while(!q.empty()){
  28.             int u = q.front();//.first;
  29.             q.pop();
  30.             for(int j=0;j<adj[u].size();j++){
  31.                 int v = adj[u][j];
  32.                 if(dist[i][v] == -1){
  33.                     dist[i][v] = dist[i][u] + 1;
  34.                     q.push(v);
  35.                 }
  36.             }  
  37.         }
  38.        
  39.     }
  40.     int q;
  41.     scanf("%d",&q);
  42.     for(int i=0;i<q;i++){
  43.         int u,v;
  44.         scanf("%d %d",&u,&v);
  45.         printf("%d\n",dist[u][v]);
  46.     }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement