Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using namespace std;
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #include<vector>
- #include<limits>
- #include<cmath>
- #include<queue>
- #include<map>
- vector<int>G[100];
- void bfs(int n)
- {
- queue<int>q;
- int level[100],visited[100]={0},parent[100];
- q.push(n);
- level[n]=0;
- visited[n]=1;
- while(!q.empty())
- {
- int a=q.front();
- for(int i=0;i<G[a].size();i++)
- {
- int b=G[a][i];
- if(!visited[b])
- {
- level[b]=level[a]+1;
- parent[b]=a;
- visited[b]=1;
- q.push(b);
- }
- }
- q.pop();
- }
- int nd;
- while(scanf("%d",&nd)==1)
- {
- printf("%d\n",level[nd]);
- vector<int>c;
- c.push_back(nd);
- for(int i=0;;i++)
- {
- int d=parent[nd];
- c.push_back(d);
- nd=d;
- if(nd==n)
- break;
- }
- for(int j=c.size()-1;j>=0;j--)
- {
- printf("%d\n",c[j]);
- }
- }
- }
- int main()
- {
- int E,N,n;
- scanf("%d%d%d",&n,&N,&E);
- for(int i=0;i<E;i++)
- {
- int x,y;
- scanf("%d%d",&x,&y);
- G[x].push_back(y);
- G[y].push_back(x);
- }
- bfs(n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement