Submission #854937

#TimeUsernameProblemLanguageResultExecution timeMemory
854937vjudge1Triple Jump (JOI19_jumps)C++17
0 / 100
19 ms8028 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define ll long long #define pii pair<int,int> #define F first #define S second #define endl '\n' #define pb push_back #define sz(a) (int)a.size() #define all(a) a.begin(),a.end() const int mod = 1e9 + 7; const int N = 200005; const ll inf = 1e18; int mx[N]; int suf[N]; int a[N]; int ans[N]; int dp[N]; int32_t main(){ ios_base::sync_with_stdio(0);cin.tie(0); int n; cin >> n; for (int i=1;i<=n;i++){ cin >> a[i]; mx[i] = max(a[i], mx[i-1]); } dp[2] = a[1]+a[2]; for (int j=3;j<=n;j++){ dp[j] = max(dp[j-1], a[j]+mx[j-1]); } int l = 1; for (int r=l+1;r<=n;r++){ int c = r + (r-l); if (c>n) break; suf[c] = max(dp[r], suf[c]); } for (int i=1;i<=n;i++){ suf[i] = max(suf[i], suf[i-1]); } for (int r=l+2;r<=n;r++){ ans[r] = max(ans[r-1], suf[r]+a[r]); } memset(suf, 0, sizeof(suf)); int q; cin >> q; while (q--){ int r; cin >> l >> r; cout << ans[r] << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...