Submission #950399

# Submission time Handle Problem Language Result Execution time Memory
950399 2024-03-20T09:21:51 Z vjudge1 Triple Jump (JOI19_jumps) C++17
19 / 100
4000 ms 154964 KB
#include<bits/stdc++.h>

using namespace std;

const int N = (int)5e5+7;
const int M = (int)2e5+7;
const int inf = (int)1e9+7;

int n, q, a[N];
int dp[5003][5003], mx[5003][5003];
pair<int, int> suf[N];
int l[N], r[N];

void solve3() {
	cin >> q >> q >> q;
	for(int i = n; i >= 1; --i) {
		suf[i] = max(suf[i+1], {a[i], i});
	}                                  	
	stack<int> st;
	for(int i = 1; i <= n; ++i) {
		l[i] = i;
		while(!st.empty() && a[st.top()]<a[i]) {
		    l[i]=l[st.top()];
			st.pop();
		}
		st.push(i);
	}
	while(!st.empty()) {
		continue;
	}
	for(int i = n; i >= 1; --i) {
		r[i] = i;
		while(!st.empty() && a[st.top()]<a[i]) {
			r[i] = r[st.top()];
			st.pop();
		}
	}
	int ans = 0;
	for(int j = 2; j < n; ++j) {
		for(int i = 1; i < l[j]; ++i) {
			int o = (j-i);
			if(r[i]<j && j+o <= n) {
				ans = max(ans, a[i]+a[j]+suf[j+o].first);
			}
		}
	}		
	cout << ans;
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cin >> n;
	for(int i = 1; i <= n; ++i) {
		cin >> a[i];
	} 
	if(n>5000) {
		solve3();
		return 0;
	}
	for(int i = 1; i <= n; ++i) {
		for(int j = i; j <= n; ++j) {
			mx[i][j] = max(mx[i][j-1], a[j]);
		}
	}
	for(int len = 3; len <= n; ++len) {
		for(int i = 1; i <= n-len+1; ++i) {
			int j = i+len-1;
			dp[i][j]=max(dp[i+1][j], dp[i][j-1]);
			int cur = a[i]+a[j];
			int m = (i+j)/2;
			cur += mx[i+1][m];
			dp[i][j] = max(dp[i][j], cur);
		}
	}
	cin >> q;
	while(q--) {
		int l, r;
		cin >> l >> r;
		cout << dp[l][r] << "\n";
	}
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 2 ms 3164 KB Output is correct
3 Correct 1 ms 3164 KB Output is correct
4 Correct 1 ms 3164 KB Output is correct
5 Correct 1 ms 3164 KB Output is correct
6 Correct 1 ms 3164 KB Output is correct
7 Correct 1 ms 3164 KB Output is correct
8 Correct 1 ms 3164 KB Output is correct
9 Correct 1 ms 3416 KB Output is correct
10 Correct 1 ms 3164 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 2 ms 3164 KB Output is correct
3 Correct 1 ms 3164 KB Output is correct
4 Correct 1 ms 3164 KB Output is correct
5 Correct 1 ms 3164 KB Output is correct
6 Correct 1 ms 3164 KB Output is correct
7 Correct 1 ms 3164 KB Output is correct
8 Correct 1 ms 3164 KB Output is correct
9 Correct 1 ms 3416 KB Output is correct
10 Correct 1 ms 3164 KB Output is correct
11 Correct 407 ms 154704 KB Output is correct
12 Correct 389 ms 154788 KB Output is correct
13 Correct 387 ms 154568 KB Output is correct
14 Correct 389 ms 154656 KB Output is correct
15 Correct 384 ms 154964 KB Output is correct
16 Correct 398 ms 153936 KB Output is correct
17 Correct 386 ms 154192 KB Output is correct
18 Correct 387 ms 153940 KB Output is correct
19 Correct 391 ms 154708 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 4030 ms 9512 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 2 ms 3164 KB Output is correct
3 Correct 1 ms 3164 KB Output is correct
4 Correct 1 ms 3164 KB Output is correct
5 Correct 1 ms 3164 KB Output is correct
6 Correct 1 ms 3164 KB Output is correct
7 Correct 1 ms 3164 KB Output is correct
8 Correct 1 ms 3164 KB Output is correct
9 Correct 1 ms 3416 KB Output is correct
10 Correct 1 ms 3164 KB Output is correct
11 Correct 407 ms 154704 KB Output is correct
12 Correct 389 ms 154788 KB Output is correct
13 Correct 387 ms 154568 KB Output is correct
14 Correct 389 ms 154656 KB Output is correct
15 Correct 384 ms 154964 KB Output is correct
16 Correct 398 ms 153936 KB Output is correct
17 Correct 386 ms 154192 KB Output is correct
18 Correct 387 ms 153940 KB Output is correct
19 Correct 391 ms 154708 KB Output is correct
20 Execution timed out 4030 ms 9512 KB Time limit exceeded
21 Halted 0 ms 0 KB -