#include #include #include #include #include #include //#include using namespace std; int n; vectorgraph[350005]; vectorv; bool visited[350005]; void dfs(int node){ visited[node]=true; for(int i=0; i>n; for(int i=0; i>k; if(k=='K'){ graph[i + 1].push_back(i+1); } if(k=='P'){ int c; cin>>c; graph[c].push_back(i+1); } } memset(visited, false, sizeof visited); for(int i=1; i<=n; i++){ if(!visited[i]){ dfs(i); } } build(0, n + 1, 1); vectorresult(n+1); for(int i=0; i