// Zende bad Shoma nasime faghat !
#include <bits/stdc++.h>
#define pb push_back
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define debug(x) cerr << #x << " : " << x << '\n'
using namespace std;
typedef long long ll;
typedef long double ld;
typedef string str;
typedef pair<ll, ll> pll;
const ll Mod = 1000000007LL;
const int N = 2e5 + 10;
const ll Inf = 2242545357980376863LL;
const ll Log = 20;
int n, q, rt;
int par[N][Log];
int mn[N];
vector<int> G[N];
void DFS(int u, int p){
par[u][0] = p;
mn[u] = u;
for(int i = 1; i < Log; i++) par[u][i] = par[par[u][i - 1]][i - 1];
for(auto adj : G[u]){
DFS(adj, u);
mn[u] = min(mn[u], mn[adj]);
}
}
set<int> st;
int mk[N], fn[N], rfn[N], T = 0;
void DFS2(int u){
sort(all(G[u]), [&](int i, int j){
return mn[i] < mn[j];
});
for(auto adj : G[u]){
DFS2(adj);
}
fn[u] = T ++;
rfn[fn[u]] = u;
st.insert(fn[u]);
}
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n >> q;
int p;
for(int i = 1; i <= n; i++){
cin >> p;
if(p) G[p].pb(i);
else rt = i;
}
DFS(rt, 0);
DFS2(rt);
int ty, v, k, res;
for(int i = 1; i <= q; i++){
cin >> ty;
if(ty == 1){
cin >> k;
for(int it = 0; it < k; it++){
v = rfn[*st.begin()];
st.erase(st.begin());
mk[v] = 1;
}
cout << v << '\n';
} else {
cin >> v;
res = 0;
for(int lg = Log - 1; lg >= 0; lg--){
if(mk[par[v][lg]]) res |= 1 << lg, v = par[v][lg];
}
mk[v] = 0;
st.insert(fn[v]);
cout << res << '\n';
}
}
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
5120 KB |
Output is correct |
2 |
Correct |
127 ms |
16716 KB |
Output is correct |
3 |
Correct |
90 ms |
16376 KB |
Output is correct |
4 |
Correct |
3 ms |
4992 KB |
Output is correct |
5 |
Correct |
5 ms |
5248 KB |
Output is correct |
6 |
Correct |
5 ms |
5248 KB |
Output is correct |
7 |
Correct |
4 ms |
5248 KB |
Output is correct |
8 |
Correct |
5 ms |
5248 KB |
Output is correct |
9 |
Correct |
9 ms |
5760 KB |
Output is correct |
10 |
Correct |
23 ms |
7936 KB |
Output is correct |
11 |
Correct |
132 ms |
16672 KB |
Output is correct |
12 |
Correct |
82 ms |
16376 KB |
Output is correct |
13 |
Correct |
106 ms |
16632 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
44 ms |
10488 KB |
Output is correct |
2 |
Correct |
201 ms |
26524 KB |
Output is correct |
3 |
Correct |
101 ms |
21236 KB |
Output is correct |
4 |
Correct |
90 ms |
12280 KB |
Output is correct |
5 |
Correct |
69 ms |
11896 KB |
Output is correct |
6 |
Correct |
64 ms |
11896 KB |
Output is correct |
7 |
Correct |
66 ms |
10872 KB |
Output is correct |
8 |
Correct |
44 ms |
10344 KB |
Output is correct |
9 |
Correct |
166 ms |
26964 KB |
Output is correct |
10 |
Correct |
212 ms |
26488 KB |
Output is correct |
11 |
Correct |
177 ms |
26616 KB |
Output is correct |
12 |
Correct |
176 ms |
24184 KB |
Output is correct |
13 |
Correct |
148 ms |
28380 KB |
Output is correct |
14 |
Correct |
98 ms |
21236 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
103 ms |
16120 KB |
Output is correct |
2 |
Correct |
273 ms |
24740 KB |
Output is correct |
3 |
Correct |
181 ms |
26360 KB |
Output is correct |
4 |
Correct |
175 ms |
22520 KB |
Output is correct |
5 |
Correct |
168 ms |
22224 KB |
Output is correct |
6 |
Correct |
165 ms |
22136 KB |
Output is correct |
7 |
Correct |
171 ms |
20600 KB |
Output is correct |
8 |
Correct |
178 ms |
26356 KB |
Output is correct |
9 |
Correct |
260 ms |
27124 KB |
Output is correct |
10 |
Correct |
287 ms |
26744 KB |
Output is correct |
11 |
Correct |
246 ms |
26744 KB |
Output is correct |
12 |
Correct |
246 ms |
24816 KB |
Output is correct |
13 |
Correct |
221 ms |
31992 KB |
Output is correct |
14 |
Correct |
193 ms |
22132 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
245 ms |
27344 KB |
Output is correct |
2 |
Correct |
227 ms |
24824 KB |
Output is correct |
3 |
Correct |
177 ms |
31224 KB |
Output is correct |
4 |
Correct |
243 ms |
27256 KB |
Output is correct |
5 |
Correct |
238 ms |
26744 KB |
Output is correct |
6 |
Correct |
208 ms |
26684 KB |
Output is correct |
7 |
Correct |
245 ms |
24824 KB |
Output is correct |
8 |
Correct |
188 ms |
31352 KB |
Output is correct |
9 |
Correct |
116 ms |
21364 KB |
Output is correct |