Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream fin("nivele11.in");
- ofstream fout("nivele11.out");
- int n , k, t[105], nivel[105], rad, niv;
- void dfs(int k, int nv)
- {
- nivel[k] = nv;
- for(int i=1 ; i<=n; ++i)
- if(t[i] == k)
- dfs(i, nv+1);
- }
- int main()
- {
- int i;
- fin>>n;
- for(i=1; i<=n; i++)
- {
- fin>>t[i];
- if(!t[i])
- rad=i;
- }
- dfs(rad,1);
- for(i=1; i<=n; i++)
- {
- if(nivel[i]>niv)
- niv=nivel[i];
- }
- for(k=1; k<=niv; ++k)
- {
- for(int i=1; i<=n; ++i)
- if(nivel[i]==k)
- fout<<i<<" ";
- fout<<'\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement