Submission #489502

#TimeUsernameProblemLanguageResultExecution timeMemory
489502wiwihoTriple Jump (JOI19_jumps)C++14
0 / 100
281 ms524292 KiB
#include<bits/stdc++.h> #define mp make_pair #define F first #define S second #define printv(a, b) { \ for(auto pv : a) b << pv << " "; \ b << "\n";\ } #define eb emplace_back using namespace std; typedef long long ll; using pii = pair<int, int>; using pll = pair<ll, ll>; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector<ll> a(n + 1); for(int i = 1; i <= n; i++) cin >> a[i]; vector<vector<ll>> dp(n + 1, vector<ll>(n + 1)); for(int i = 1; i + 2 <= n; i++){ ll mx = a[i + 1]; int p = i + 1; for(int j = i + 2; j <= n; j++){ while(p + 1 - i <= j - p - 1){ mx = max(mx, a[p]); p++; } dp[i][j] = a[i] + a[j] + mx; } } for(int len = 3; len <= n; len++){ for(int i = 1; i + len <= n; i++){ int j = i + len; dp[i][j] = max({dp[i][j], dp[i][j - 1], dp[i + 1][j]}); } } int q; cin >> q; while(q--){ int l, r; cin >> l >> r; cout << dp[l][r] << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...