Submission #416859

# Submission time Handle Problem Language Result Execution time Memory
416859 2021-06-03T06:19:48 Z CSQ31 Rainforest Jumps (APIO21_jumps) C++14
23 / 100
1152 ms 45952 KB
#include "jumps.h"
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define fi first
#define se second
#define sz(a) (int)(a.size())
typedef long long int ll;
typedef pair<int,int> pii;
typedef vector<vector<int>> vii;
const int MAXN = 2e5+5;
vii adj(MAXN);
int hpar[20][MAXN],lpar[20][MAXN];
vector<int>H;
void init(int n, vector<int>h){
	H = h;
	stack<pii>stk;
	for(int i=0;i<n;i++){
		while(!stk.empty() && stk.top().fi < h[i])stk.pop();
		if(!stk.empty())adj[i+1].pb(stk.top().se+1);
		stk.push({h[i],i});
	}
	while(!stk.empty())stk.pop();
	for(int i=n-1;i>=0;i--){
	    while(!stk.empty() && stk.top().fi < h[i])stk.pop();
		if(!stk.empty())adj[i+1].pb(stk.top().se+1);
		stk.push({h[i],i});
	}
	for(int i=1;i<=n;i++){
		if(sz(adj[i]) >1){
			hpar[0][i] = h[adj[i][0]-1]<h[adj[i][1]-1] ? adj[i][1] : adj[i][0];
			lpar[0][i] = h[adj[i][0]-1]>h[adj[i][1]-1] ? adj[i][1] : adj[i][0];
		}
		else if(sz(adj[i])) lpar[0][i] = adj[i][0];
	}
	for(int j=1;j<20;j++){
		for(int i=1;i<=n;i++){
			hpar[j][i] = hpar[j-1][hpar[j-1][i]];
			lpar[j][i] = lpar[j-1][lpar[j-1][i]];
		}
	}
	
}
int minimum_jumps(int a,int b,int c,int d){
	a++;
	b++;
	c++;
	d++;
	if(a==b && c==d){
		int cur = a;
		int ans = 0;
		for(int i=19;i>=0;i--){
			if(hpar[i][cur] && H[hpar[i][cur]-1] <= H[d-1]){
				ans+=(1<<i);
				cur = hpar[i][cur];
			}
		}
		for(int i=19;i>=0;i--){
			if(lpar[i][cur] && H[lpar[i][cur]-1] <= H[d-1]){
				ans+=(1<<i);
				cur = lpar[i][cur];
			}
		}
		if(cur == d)return ans;
		else return -1;
		
	}	
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 3 ms 5192 KB Output is correct
2 Correct 3 ms 5192 KB Output is correct
3 Incorrect 143 ms 37532 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 5192 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 5192 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 5192 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 5212 KB Output is correct
2 Correct 3 ms 5192 KB Output is correct
3 Correct 5 ms 5192 KB Output is correct
4 Correct 253 ms 23428 KB Output is correct
5 Correct 1055 ms 44788 KB Output is correct
6 Correct 727 ms 11720 KB Output is correct
7 Correct 922 ms 44844 KB Output is correct
8 Correct 646 ms 18824 KB Output is correct
9 Correct 1117 ms 44800 KB Output is correct
10 Correct 1113 ms 45760 KB Output is correct
11 Correct 1139 ms 45700 KB Output is correct
12 Correct 1152 ms 45632 KB Output is correct
13 Correct 933 ms 44796 KB Output is correct
14 Correct 1146 ms 45700 KB Output is correct
15 Correct 1083 ms 45824 KB Output is correct
16 Correct 1075 ms 45832 KB Output is correct
17 Correct 3 ms 5192 KB Output is correct
18 Correct 3 ms 5192 KB Output is correct
19 Correct 5 ms 5192 KB Output is correct
20 Correct 6 ms 5192 KB Output is correct
21 Correct 5 ms 5192 KB Output is correct
22 Correct 5 ms 5192 KB Output is correct
23 Correct 7 ms 5192 KB Output is correct
24 Correct 5 ms 5192 KB Output is correct
25 Correct 3 ms 5192 KB Output is correct
26 Correct 5 ms 5320 KB Output is correct
27 Correct 22 ms 5576 KB Output is correct
28 Correct 27 ms 5576 KB Output is correct
29 Correct 24 ms 5576 KB Output is correct
30 Correct 21 ms 5576 KB Output is correct
31 Correct 20 ms 5576 KB Output is correct
32 Correct 4 ms 5192 KB Output is correct
33 Correct 47 ms 28224 KB Output is correct
34 Correct 77 ms 44808 KB Output is correct
35 Correct 62 ms 45632 KB Output is correct
36 Correct 72 ms 44796 KB Output is correct
37 Correct 71 ms 45696 KB Output is correct
38 Correct 81 ms 45952 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 5212 KB Output is correct
2 Correct 3 ms 5192 KB Output is correct
3 Correct 5 ms 5192 KB Output is correct
4 Correct 253 ms 23428 KB Output is correct
5 Correct 1055 ms 44788 KB Output is correct
6 Correct 727 ms 11720 KB Output is correct
7 Correct 922 ms 44844 KB Output is correct
8 Correct 646 ms 18824 KB Output is correct
9 Correct 1117 ms 44800 KB Output is correct
10 Correct 1113 ms 45760 KB Output is correct
11 Correct 1139 ms 45700 KB Output is correct
12 Correct 1152 ms 45632 KB Output is correct
13 Correct 933 ms 44796 KB Output is correct
14 Correct 1146 ms 45700 KB Output is correct
15 Correct 1083 ms 45824 KB Output is correct
16 Correct 1075 ms 45832 KB Output is correct
17 Correct 3 ms 5192 KB Output is correct
18 Correct 3 ms 5192 KB Output is correct
19 Correct 5 ms 5192 KB Output is correct
20 Correct 6 ms 5192 KB Output is correct
21 Correct 5 ms 5192 KB Output is correct
22 Correct 5 ms 5192 KB Output is correct
23 Correct 7 ms 5192 KB Output is correct
24 Correct 5 ms 5192 KB Output is correct
25 Correct 3 ms 5192 KB Output is correct
26 Correct 5 ms 5320 KB Output is correct
27 Correct 22 ms 5576 KB Output is correct
28 Correct 27 ms 5576 KB Output is correct
29 Correct 24 ms 5576 KB Output is correct
30 Correct 21 ms 5576 KB Output is correct
31 Correct 20 ms 5576 KB Output is correct
32 Correct 4 ms 5192 KB Output is correct
33 Correct 47 ms 28224 KB Output is correct
34 Correct 77 ms 44808 KB Output is correct
35 Correct 62 ms 45632 KB Output is correct
36 Correct 72 ms 44796 KB Output is correct
37 Correct 71 ms 45696 KB Output is correct
38 Correct 81 ms 45952 KB Output is correct
39 Correct 3 ms 5192 KB Output is correct
40 Correct 3 ms 5192 KB Output is correct
41 Correct 3 ms 5192 KB Output is correct
42 Correct 248 ms 23360 KB Output is correct
43 Correct 997 ms 44864 KB Output is correct
44 Correct 621 ms 11720 KB Output is correct
45 Correct 993 ms 44856 KB Output is correct
46 Correct 508 ms 18916 KB Output is correct
47 Correct 1037 ms 44864 KB Output is correct
48 Correct 1087 ms 45760 KB Output is correct
49 Correct 1051 ms 45760 KB Output is correct
50 Correct 1058 ms 45632 KB Output is correct
51 Correct 916 ms 44904 KB Output is correct
52 Correct 1098 ms 45700 KB Output is correct
53 Correct 1037 ms 45824 KB Output is correct
54 Correct 893 ms 45764 KB Output is correct
55 Correct 3 ms 5192 KB Output is correct
56 Incorrect 122 ms 44784 KB Output isn't correct
57 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 5192 KB Output is correct
2 Correct 3 ms 5192 KB Output is correct
3 Incorrect 143 ms 37532 KB Output isn't correct
4 Halted 0 ms 0 KB -