#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0; i<(n); i++)
#define rng(i,l,r) for(int i=(l); i<(r); i++)
#define all(x) x.begin(),x.end()
using ll=long long;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
cin>>N;
vector<ll> A(N);
rep(i,N)cin>>A[i];
vector<vector<ll>> ans(N,vector<ll>(N,-(1LL<<60)));
rep(i,N){
ll mx=0;
rng(j,i+2,N){
if((i+j)%2==0){
mx=max(mx,A[(i+j)/2]);
}
ans[i][j]=A[i]+A[j]+mx;
}
}
rng(i,2,N){
rep(j,N){
ll k=j+i;
if(k>=N)break;
ans[j][k]=max(ans[j][k],ans[j+1][k]);
ans[j][k]=max(ans[j][k],ans[j][k-1]);
}
}
int Q;
cin>>Q;
rep(i,Q){
int L,R;
cin>>L>>R;
cout<<ans[L-1][R-1]<<"\n";
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |