Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #define N 105
- using namespace std;
- ifstream fin("detdrum.in");
- ofstream fout("detdrum.out");
- int a[N][N],n;
- int viz[N];
- int Q[N];
- int prim,ultim;
- int x;
- int rad;
- int V[N],m;
- void Citire()
- { int i,y;
- fin>>n>>x;
- for(i=1;i<=n;i++)
- { fin>>y;
- if(y==0) rad=i;
- a[y][0]++;
- a[y][a[y][0]]=i;
- }
- }
- void BFS(int rad)
- { int v,i,y;
- Q[1]=rad; prim=ultim=1;
- viz[rad]=1;
- m++;
- V[m]=rad;
- while(prim<=ultim && y!=x)
- { v=Q[prim]; prim++;
- for(i=1;i<=a[v][0];i++)
- { y=a[v][i];
- if(viz[y]==0)
- { viz[y]=1;
- ultim++; Q[ultim]=y;
- m++;
- V[m]=y;
- if(y==x) return;
- }
- }
- }
- }
- int main()
- { int i;
- Citire();
- BFS(rad);
- for(i=m;i>=1;i--)
- fout<<V[i]<<" ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement