제출 #615326

#제출 시각아이디문제언어결과실행 시간메모리
615326AbdelmagedNour3단 점프 (JOI19_jumps)C++17
19 / 100
353 ms77192 KiB
#include<bits/stdc++.h> using namespace std; const int N=5005; int sp[13][N],dp[N][N]; void build(int n){ for(int j=1;j<13;j++){ for(int i=0;i+(1<<j)<=n;i++){ sp[j][i]=max(sp[j-1][i],sp[j-1][i+(1<<(j-1))]); } } } int RMQ(int l,int r){ int sz=__lg(r-l+1); return max(sp[sz][l],sp[sz][r-(1<<sz)+1]); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin>>n; for(int i=0;i<n;i++)cin>>sp[0][i]; build(n); for(int sz=2;sz<n;sz++){ for(int i=0;i+sz<n;i++){ dp[i][i+sz]=sp[0][i]+sp[0][i+sz]+RMQ(i+1,(i+sz+i)/2); dp[i][i+sz]=max({dp[i][i+sz],dp[i+1][i+sz],dp[i][i+sz-1]}); } } int q; cin>>q; while(q--){ int l,r; cin>>l>>r; 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...