#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double db;
typedef pair<int,int> pii;
#define fi first
#define se second
#define mp make_pair
#define fastIO std::ios::sync_with_stdio(false);cin.tie(NULL);
#define TEST freopen("in.txt","r",stdin);
#define ones(a) __builtin_popcount(a);
#define pq priority_queue
const int N = (int)1e5 + 9;
const int LOG = 18;
vector<int> T[N];
int min_leaf[N];
int up[N][LOG];
void dfs1(int node,int par){
min_leaf[node] = 21344567;
up[node][0] = par;
for(int i = 1;i < LOG;i ++ ){
if(up[node][i - 1] != -1)
up[node][i] = up[up[node][i - 1]][i - 1];
}
for(auto x : T[node]){
dfs1(x, node);
min_leaf[node] = min(min_leaf[node], min_leaf[x]);
}
if(T[node].empty())
min_leaf[node] = node;
}
int tt;
int porder[N];
int pos[N];
bool is[N];
void dfs2(int node){
vector<pii> nex;
porder[tt] = node;
pos[node] = tt++;
for(auto x : T[node])
nex.push_back(mp(min_leaf[x], x));
sort(nex.begin(), nex.end());
for(int i = (int)nex.size() - 1;i >= 0;i -- ){
dfs2(nex[i].se);
}
}
pq<int> emp;
int ins(int k){
int fr;
for(int i = 0;i < k;i ++ ){
fr = emp.top();
emp.pop();
is[porder[fr]] = true;
}
return porder[fr];
}
int rem(int ix){
int sum = 0;
int go = ix;
for(int i = LOG-1;i >= 0 ;i -- ){
if(up[go][i] == -1)
continue;
if(is[up[go][i]]){
sum += (1 << i);
go = up[go][i];
}
}
is[go] = false;
emp.push(pos[go]);
return sum;
}
int main(){
fastIO;
memset(up, -1, sizeof up);
int n, q;
cin >> n >> q;
for(int i = 0;i <= n;i ++ )
is[i] = false;
int x;
int root;
for(int i = 1;i <= n;i ++ ){
cin >> x;
if(x == 0)
root = i;
else
T[x].push_back(i);
}
dfs1(root, -1);
dfs2(root);
for(int i = 0;i < tt;i ++ )
emp.push(i);
int ty, bl;
for(int i = 0;i < q;i ++ ){
cin >> ty >> bl;
if(ty == 1)
cout << ins(bl) << "\n";
else
cout << rem(bl) << "\n";
}
return 0;
}
Compilation message
ballmachine.cpp: In function 'int ins(int)':
ballmachine.cpp:60:7: warning: 'fr' may be used uninitialized in this function [-Wmaybe-uninitialized]
int fr;
^~
ballmachine.cpp: In function 'int main()':
ballmachine.cpp:60:7: warning: 'fr' may be used uninitialized in this function [-Wmaybe-uninitialized]
ballmachine.cpp:102:7: warning: 'root' may be used uninitialized in this function [-Wmaybe-uninitialized]
dfs2(root);
~~~~^~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
10 ms |
9720 KB |
Output isn't correct |
2 |
Incorrect |
124 ms |
13436 KB |
Output isn't correct |
3 |
Incorrect |
95 ms |
14632 KB |
Output isn't correct |
4 |
Correct |
12 ms |
14632 KB |
Output is correct |
5 |
Incorrect |
10 ms |
14632 KB |
Output isn't correct |
6 |
Incorrect |
13 ms |
14632 KB |
Output isn't correct |
7 |
Incorrect |
11 ms |
14632 KB |
Output isn't correct |
8 |
Incorrect |
12 ms |
14632 KB |
Output isn't correct |
9 |
Incorrect |
17 ms |
14632 KB |
Output isn't correct |
10 |
Incorrect |
33 ms |
14632 KB |
Output isn't correct |
11 |
Incorrect |
141 ms |
16000 KB |
Output isn't correct |
12 |
Incorrect |
88 ms |
17140 KB |
Output isn't correct |
13 |
Incorrect |
103 ms |
18216 KB |
Output isn't correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
46 ms |
18864 KB |
Output is correct |
2 |
Incorrect |
229 ms |
26136 KB |
Output isn't correct |
3 |
Correct |
98 ms |
26136 KB |
Output is correct |
4 |
Incorrect |
74 ms |
26136 KB |
Output isn't correct |
5 |
Incorrect |
68 ms |
26136 KB |
Output isn't correct |
6 |
Incorrect |
84 ms |
26136 KB |
Output isn't correct |
7 |
Incorrect |
104 ms |
26136 KB |
Output isn't correct |
8 |
Correct |
43 ms |
26136 KB |
Output is correct |
9 |
Incorrect |
197 ms |
30676 KB |
Output isn't correct |
10 |
Incorrect |
278 ms |
31280 KB |
Output isn't correct |
11 |
Incorrect |
200 ms |
31996 KB |
Output isn't correct |
12 |
Correct |
229 ms |
31996 KB |
Output is correct |
13 |
Correct |
243 ms |
38912 KB |
Output is correct |
14 |
Correct |
119 ms |
38912 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
111 ms |
38912 KB |
Output is correct |
2 |
Correct |
239 ms |
38912 KB |
Output is correct |
3 |
Correct |
214 ms |
38912 KB |
Output is correct |
4 |
Incorrect |
131 ms |
38912 KB |
Output isn't correct |
5 |
Correct |
157 ms |
38912 KB |
Output is correct |
6 |
Correct |
136 ms |
38912 KB |
Output is correct |
7 |
Incorrect |
127 ms |
38912 KB |
Output isn't correct |
8 |
Correct |
170 ms |
40064 KB |
Output is correct |
9 |
Correct |
235 ms |
40064 KB |
Output is correct |
10 |
Correct |
227 ms |
40064 KB |
Output is correct |
11 |
Correct |
255 ms |
40064 KB |
Output is correct |
12 |
Correct |
200 ms |
40064 KB |
Output is correct |
13 |
Correct |
257 ms |
43904 KB |
Output is correct |
14 |
Incorrect |
137 ms |
43904 KB |
Output isn't correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
199 ms |
43904 KB |
Output isn't correct |
2 |
Incorrect |
209 ms |
43904 KB |
Output isn't correct |
3 |
Correct |
211 ms |
46172 KB |
Output is correct |
4 |
Incorrect |
230 ms |
46172 KB |
Output isn't correct |
5 |
Incorrect |
208 ms |
46172 KB |
Output isn't correct |
6 |
Incorrect |
188 ms |
46172 KB |
Output isn't correct |
7 |
Incorrect |
182 ms |
46172 KB |
Output isn't correct |
8 |
Correct |
172 ms |
49408 KB |
Output is correct |
9 |
Correct |
105 ms |
49408 KB |
Output is correct |