제출 #1161595

#제출 시각아이디문제언어결과실행 시간메모리
1161595hahahoang1323단 점프 (JOI19_jumps)C++20
5 / 100
4096 ms32836 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; using ld = long double; const ll N = 1e6 + 5; const ll mod = 1e9 + 7; const ll inf = LLONG_MAX/5; #define bit(x,y) ((x >> y) & 1) vector<ll> b[N]; ll a[N]; ll get(ll l, ll r) { ll ans = 0; ll i,j; for(i = l;i <= r;i++) { ans = max(ans,a[i]); } return ans; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); ll n; ll i,j; cin >> n; for(i = 1;i <= n;i++) cin >> a[i]; stack<ll> st; for(i = 1;i <= n;i++) { while(!st.empty() && a[st.top()] <= a[i]) { b[i].push_back(st.top()); st.pop(); } if(!st.empty()) b[i].push_back(st.top()); st.push(i); } ll q; cin >> q; while(q--) { ll l,r; cin >> l >> r; ll i,j; ll ans = 0; for(i = l;i <= r;i++) { for(auto s : b[i]) { ll e = 2 * i - s; if(l <= s && e <= r) { ans = max(ans,a[s] + a[i] + get(e,r)); } } } 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...