Submission #944115

#TimeUsernameProblemLanguageResultExecution timeMemory
944115kxdTriple Jump (JOI19_jumps)C++17
5 / 100
4054 ms28740 KiB
#include <bits/stdc++.h> //#define DEBUG 1106 #define int long long #define ll long long #define ld long double #define pb push_back #define p_q priority_queue #define m_p make_pair #define pii pair<int,int> #define endl '\n' #define INIT ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define FOR(i,a,b) for(int i = a; i <= b; i++) #define forn(i,n) for (int i = 0; i < n; i++) #define forn1(i,n) for (int i = 1; i <= n; i++) #define all(x) x.begin(),x.end() #define ft first #define sd second #define lowbit(x) (x&(-x)) #define chmax(x,y) x=max(x,y) #define chmin(x,y) x=min(x,y) #ifdef DEBUG #define debug(x) cout << #x << ": " << x << endl; #else #define debug(x) 1106; #endif using namespace std; const int N = 2e5+5; const int inf = 1e9; const int INF = 1e18; const int MOD = 1e9+7; struct node { int s, e, m, v; node *l, *r; node(int _s, int _e) { s = _s, e = _e, v = 0; m = (s+e)/2; if(s != e) { l = new node(s, m); r = new node(m+1, e); } } int query(int a, int b) { if(a>b) return -inf; if(a <= s && e <= b) return v; else if(a > m) return r->query(a, b); else if(b <= m) return l->query(a, b); else return max(l->query(a, b), r->query(a, b)); } void up(int p, int val) { if(s == e) { v = val; return; } else if(p <= m) l->up(p, val); else r->up(p, val); v = max(l->v, r->v); } } *root; int a[N]; signed main() { //INIT #ifdef DEBUG freopen("input.txt", "r", stdin); #endif /////////// int n; cin >> n; root = new node(0,n+1); forn1(i,n) { cin >> a[i]; root->up(i,a[i]); } int q; cin >> q; int l, r; while(q--) { cin >> l >> r; int ans = 0; for(int i = l; i <= r-1; i++) { for(int j = i+1; j <= r-1; j++) { //cout << i << ' ' << j << '|' << j+1 << ' ' << min(r,j+(j-i)) << endl; int k = root->query(j+(j-i),r); chmax(ans,a[i]+a[j]+k); } } cout << ans << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...