Submission #941695

#TimeUsernameProblemLanguageResultExecution timeMemory
941695emptypringlescan3단 점프 (JOI19_jumps)C++17
32 / 100
4022 ms8924 KiB
#include <bits/stdc++.h> using namespace std; int32_t main(){ ios::sync_with_stdio(0);cin.tie(0); int n; cin >> n; long long arr[n]; for(int i=0; i<n; i++) cin >> arr[i]; int q; cin >> q; int mono[n],cnt=0; long long suf[n]; while(q--){ int l,r; cin >> l >> r; l--; r--; cnt=0; suf[r]=arr[r]; for(int i=r-1; i>=l; i--) suf[i]=max(suf[i+1],arr[i]); long long ans=0; for(int i=l; i<=r; i++){ while(cnt!=0&&arr[mono[cnt-1]]<=arr[i]){ int a=mono[cnt-1]; if(i*2-a<=r) ans=max(ans,arr[a]+arr[i]+suf[i*2-a]); cnt--; } if(cnt!=0){ int a=mono[cnt-1]; if(i*2-a<=r) ans=max(ans,arr[a]+arr[i]+suf[i*2-a]); } mono[cnt]=i; cnt++; } cout << ans << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...