#include <bits/stdc++.h>
#include "fun.h"
using namespace std;
int n,bad[300001],h[100001];
multiset<int> ms[100001];
void dfs(int curr , int hi){
h[curr] = hi;
ms[curr].insert(hi);
for(int i = 2*curr+1 ; i <= 2*curr+2 ; i += 1){
if(i >= n){
continue;
}
dfs(i,hi+1);
for(auto j : ms[i]){
ms[curr].insert(j);
}
}
}
int solve(int curr){
bad[curr] = 1;
int from = -1 , root = curr , dist = 0 , best = 0 , best2 = -1;
while(curr && !bad[(curr-1)/2]){
from = curr;
ms[curr].erase(ms[curr].find(h[root]));
curr = (curr-1)/2;
dist += 1;
for(int i = 2*curr+1 ; i <= 2*curr+2 ; i += 1){
if(i == from || bad[i]){
continue;
}
int val = dist+1+*(--ms[i].end())-h[curr];
if(val > best){
best2 = i;
best = max(best,val);
}
}
}
ms[curr].erase(ms[curr].find(h[root]));
if(best2 == -1){
best2 = curr;
}
if(bad[best2]){
return best2;
}
curr = best2;
while(true){
bool g = 0;
for(int i = 2*curr+1 ; i <= 2*curr+2 ; i += 1){
if(bad[i]){
continue;
}
if(*(--ms[i].end()) == *(--ms[curr].end())){
g = 1;
curr = i;
break;
}
}
if(!g){
break;
}
}
return curr;
}
vector<int> createFunTour(int N , int Q){
n = N;
for(int i = n ; i <= 300000 ; i += 1){
bad[i] = 1;
}
dfs(0,0);
vector<int> ret = {n-1};
for(int i = 0 ; i < n-1 ; i += 1){
ret.push_back(solve(ret.back()));
}
return ret;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
6092 KB |
Output is correct |
2 |
Correct |
4 ms |
6172 KB |
Output is correct |
3 |
Correct |
4 ms |
6092 KB |
Output is correct |
4 |
Correct |
4 ms |
6092 KB |
Output is correct |
5 |
Correct |
4 ms |
6092 KB |
Output is correct |
6 |
Correct |
4 ms |
6092 KB |
Output is correct |
7 |
Correct |
4 ms |
6092 KB |
Output is correct |
8 |
Correct |
4 ms |
6092 KB |
Output is correct |
9 |
Correct |
4 ms |
6092 KB |
Output is correct |
10 |
Correct |
4 ms |
6092 KB |
Output is correct |
11 |
Incorrect |
4 ms |
6092 KB |
Tour is not fun |
12 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
6092 KB |
Output is correct |
2 |
Correct |
4 ms |
6172 KB |
Output is correct |
3 |
Correct |
4 ms |
6092 KB |
Output is correct |
4 |
Correct |
4 ms |
6092 KB |
Output is correct |
5 |
Correct |
4 ms |
6092 KB |
Output is correct |
6 |
Correct |
4 ms |
6092 KB |
Output is correct |
7 |
Correct |
4 ms |
6092 KB |
Output is correct |
8 |
Correct |
4 ms |
6092 KB |
Output is correct |
9 |
Correct |
4 ms |
6092 KB |
Output is correct |
10 |
Correct |
4 ms |
6092 KB |
Output is correct |
11 |
Incorrect |
4 ms |
6092 KB |
Tour is not fun |
12 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
6172 KB |
Output is correct |
2 |
Correct |
4 ms |
6092 KB |
Output is correct |
3 |
Correct |
4 ms |
6092 KB |
Output is correct |
4 |
Correct |
4 ms |
6092 KB |
Output is correct |
5 |
Correct |
4 ms |
6092 KB |
Output is correct |
6 |
Correct |
4 ms |
6092 KB |
Output is correct |
7 |
Correct |
4 ms |
6092 KB |
Output is correct |
8 |
Correct |
4 ms |
6092 KB |
Output is correct |
9 |
Correct |
4 ms |
6092 KB |
Output is correct |
10 |
Correct |
4 ms |
6092 KB |
Output is correct |
11 |
Correct |
4 ms |
6092 KB |
Output is correct |
12 |
Correct |
6 ms |
6316 KB |
Output is correct |
13 |
Correct |
5 ms |
6092 KB |
Output is correct |
14 |
Correct |
4 ms |
6220 KB |
Output is correct |
15 |
Correct |
4 ms |
6220 KB |
Output is correct |
16 |
Correct |
5 ms |
6404 KB |
Output is correct |
17 |
Correct |
5 ms |
6348 KB |
Output is correct |
18 |
Correct |
590 ms |
94212 KB |
Output is correct |
19 |
Correct |
6 ms |
6604 KB |
Output is correct |
20 |
Correct |
9 ms |
7244 KB |
Output is correct |
21 |
Correct |
13 ms |
8080 KB |
Output is correct |
22 |
Correct |
28 ms |
10856 KB |
Output is correct |
23 |
Correct |
62 ms |
16220 KB |
Output is correct |
24 |
Correct |
87 ms |
20020 KB |
Output is correct |
25 |
Correct |
320 ms |
55652 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
6172 KB |
Output is correct |
2 |
Correct |
4 ms |
6092 KB |
Output is correct |
3 |
Correct |
4 ms |
6092 KB |
Output is correct |
4 |
Incorrect |
4 ms |
6092 KB |
Tour is not fun |
5 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
6092 KB |
Output is correct |
2 |
Correct |
4 ms |
6172 KB |
Output is correct |
3 |
Correct |
4 ms |
6092 KB |
Output is correct |
4 |
Correct |
4 ms |
6092 KB |
Output is correct |
5 |
Correct |
4 ms |
6092 KB |
Output is correct |
6 |
Correct |
4 ms |
6092 KB |
Output is correct |
7 |
Correct |
4 ms |
6092 KB |
Output is correct |
8 |
Correct |
4 ms |
6092 KB |
Output is correct |
9 |
Correct |
4 ms |
6092 KB |
Output is correct |
10 |
Correct |
4 ms |
6092 KB |
Output is correct |
11 |
Incorrect |
4 ms |
6092 KB |
Tour is not fun |
12 |
Halted |
0 ms |
0 KB |
- |