Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<queue>
- #include<vector>
- using namespace std;
- int main()
- {
- int n,m;
- scanf("%d %d",&n,&m);
- vector<int> adj[n+1];
- for(int i=0;i<m;i++){
- int u,v;
- scanf("%d %d",&u,&v);
- adj[u].push_back(v);
- adj[v].push_back(u);
- }
- int dist[n+1][n+1];for(int i=0;i<=n;i++)for(int j=0;j<=n;j++)dist[i][j] = -1;
- for(int i=1;i<=n;i++){
- queue<int> q;
- dist[i][i] = 0;
- q.push(i);
- while(!q.empty()){
- int u = q.front();//.first;
- q.pop();
- for(int j=0;j<adj[u].size();j++){
- int v = adj[u][j];
- if(dist[i][v] == -1){
- dist[i][v] = dist[i][u] + 1;
- q.push(v);
- }
- }
- }
- }
- int q;
- scanf("%d",&q);
- for(int i=0;i<q;i++){
- int u,v;
- scanf("%d %d",&u,&v);
- printf("%d\n",dist[u][v]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement