Submission #402586

# Submission time Handle Problem Language Result Execution time Memory
402586 2021-05-12T02:25:32 Z faresbasbs Fun Tour (APIO20_fun) C++14
21 / 100
590 ms 94212 KB
#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 -