Submission #1114988

#TimeUsernameProblemLanguageResultExecution timeMemory
1114988AdamGSFire (JOI20_ho_t5)C++17
7 / 100
104 ms5704 KiB
#include <bits/stdc++.h> using namespace std; int tr[400000]; int n,q; void add(int p,int w) { p+=n; tr[p] = w; p/=2; while(p > 0) { tr[p] = max(tr[p*2],tr[p*2+1]); p/=2; } } int spr(int l,int r) { l+=n;r+=n; int ans = 0; ans = max(ans, tr[l]); ans = max(ans, tr[r]); while(l/2 != r/2) { if(l%2 == 0) ans = max(ans,tr[l+1]); if(r%2 == 1) ans = max(ans,tr[r-1]); l/=2;r/=2; } return ans; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>q; for(int i = 0;i<n;i++) { int x; cin>>x; add(i,x); } for(int i = 0;i<q;i++) { int t,l,r; cin>>t>>l>>r; l--;r--; cout<<spr(max(0,l-t),r)<<"\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...
#Verdict Execution timeMemoryGrader output
Fetching results...