#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 1;
const int K = 19;
int n,q,root,t;
vector<int> adj[N];
int dp[K][N],lv[N],mn[N],prio[N];
priority_queue<pair<int,int> > ava;
vector<pair<int,int> > tmp;
bool filled[N];
void dfs(int u,int p)
{
lv[u] = lv[p]+1,dp[0][u] = p;
mn[u] = u;
for(int v : adj[u]) dfs(v,u),mn[u] = min(mn[u],mn[v]);
tmp.clear();
for(int v : adj[u]) tmp.push_back({mn[v],v});
sort(tmp.begin(),tmp.end());
int id = 0;
for(int &v : adj[u]) v = tmp[id++].second;
}
void findpr(int u,int p)
{
for(int v : adj[u]) findpr(v,u);
prio[u] = ++t;
}
int jump(int x)
{
for(int i = K-1;i >= 0;i--) if(filled[dp[i][x]])
{
x = dp[i][x];
if(!filled[dp[0][x]]) return x;
}
return x;
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0);
cin >> n >> q;
for(int i = 1;i <= n;i++)
{
int x;
cin >> x;
if(!x) root = i;
else adj[x].push_back(i);
}
dfs(root,0);
findpr(root,0);
for(int i = 1;i < K;i++) for(int j = 1;j <= n;j++) dp[i][j] = dp[i-1][dp[i-1][j]];
for(int i = 1;i <= n;i++) ava.push({-prio[i],i});
while(q--)
{
int t,x;
cin >> t >> x;
if(t==1)
{
int ans;
while(x--) ans = ava.top().second,filled[ava.top().second] = true,ava.pop();
cout << ans << '\n';
}
else
{
int res = jump(x);
filled[res] = false,ava.push({-prio[res],res});
cout << lv[x]-lv[res] << '\n';
}
}
}
Compilation message
ballmachine.cpp: In function 'int main()':
ballmachine.cpp:66:28: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
cout << ans << '\n';
^~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
2816 KB |
Output is correct |
2 |
Correct |
89 ms |
11504 KB |
Output is correct |
3 |
Correct |
64 ms |
11504 KB |
Output is correct |
4 |
Correct |
6 ms |
2816 KB |
Output is correct |
5 |
Correct |
6 ms |
2688 KB |
Output is correct |
6 |
Correct |
6 ms |
2944 KB |
Output is correct |
7 |
Correct |
7 ms |
2944 KB |
Output is correct |
8 |
Correct |
6 ms |
2944 KB |
Output is correct |
9 |
Correct |
10 ms |
3328 KB |
Output is correct |
10 |
Correct |
21 ms |
4992 KB |
Output is correct |
11 |
Correct |
88 ms |
11500 KB |
Output is correct |
12 |
Correct |
58 ms |
11504 KB |
Output is correct |
13 |
Correct |
79 ms |
11500 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
35 ms |
7796 KB |
Output is correct |
2 |
Correct |
153 ms |
20460 KB |
Output is correct |
3 |
Correct |
76 ms |
15212 KB |
Output is correct |
4 |
Correct |
53 ms |
8824 KB |
Output is correct |
5 |
Correct |
56 ms |
8692 KB |
Output is correct |
6 |
Correct |
55 ms |
8692 KB |
Output is correct |
7 |
Correct |
52 ms |
7672 KB |
Output is correct |
8 |
Correct |
36 ms |
7796 KB |
Output is correct |
9 |
Correct |
125 ms |
20976 KB |
Output is correct |
10 |
Correct |
136 ms |
20460 KB |
Output is correct |
11 |
Correct |
110 ms |
20552 KB |
Output is correct |
12 |
Correct |
144 ms |
17960 KB |
Output is correct |
13 |
Correct |
95 ms |
23788 KB |
Output is correct |
14 |
Correct |
74 ms |
15212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
56 ms |
12020 KB |
Output is correct |
2 |
Correct |
156 ms |
18476 KB |
Output is correct |
3 |
Correct |
112 ms |
21872 KB |
Output is correct |
4 |
Correct |
92 ms |
17384 KB |
Output is correct |
5 |
Correct |
91 ms |
17008 KB |
Output is correct |
6 |
Correct |
100 ms |
17136 KB |
Output is correct |
7 |
Correct |
99 ms |
15108 KB |
Output is correct |
8 |
Correct |
109 ms |
21736 KB |
Output is correct |
9 |
Correct |
144 ms |
21080 KB |
Output is correct |
10 |
Correct |
156 ms |
20716 KB |
Output is correct |
11 |
Correct |
143 ms |
20716 KB |
Output is correct |
12 |
Correct |
148 ms |
18288 KB |
Output is correct |
13 |
Correct |
177 ms |
26728 KB |
Output is correct |
14 |
Correct |
110 ms |
15724 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
170 ms |
21196 KB |
Output is correct |
2 |
Correct |
159 ms |
18316 KB |
Output is correct |
3 |
Correct |
102 ms |
26344 KB |
Output is correct |
4 |
Correct |
168 ms |
21204 KB |
Output is correct |
5 |
Correct |
150 ms |
20720 KB |
Output is correct |
6 |
Correct |
117 ms |
20720 KB |
Output is correct |
7 |
Correct |
145 ms |
18412 KB |
Output is correct |
8 |
Correct |
101 ms |
26348 KB |
Output is correct |
9 |
Correct |
67 ms |
15212 KB |
Output is correct |