Submission #1131115

#TimeUsernameProblemLanguageResultExecution timeMemory
1131115khoavn2008Secret (JOI14_secret)C++20
0 / 100
451 ms4436 KiB
#include "secret.h" #include <bits/stdc++.h> using namespace std; #define FOR(i,l,r) for(int i=(l),_r=(r);i<=_r;i++) const int LOG = 14, INF = 2e9; int n, st[10111 * 4]; void update(int u, int v, int id = 1, int l = 1, int r = n){ if(u < l || r < u)return; if(l == r){ st[id] = v; return; } int mid = (l + r) >> 1; update(u,v,id*2,l,mid); update(u,v,id*2+1,mid+1,r); st[id] = Secret(st[id * 2], st[id * 2 + 1]); } int get(int u, int v, int id = 1, int l = 1, int r = n){ if(v < l || r < u)return -INF; if(u <= l && r <= r)return st[id]; int mid = (l + r) >> 1; int LT = get(u,v,id*2,l,mid); int RT = get(u,v,id*2+1,mid+1,r); if(LT != -INF && RT != -INF)return Secret(LT, RT); if(LT == -INF)return RT; if(RT == -INF)return LT; return -INF; } void Init(int N, int A[]) { n = N; FOR(i,1,n){ update(i, A[i - 1]); } } int Query(int L, int R) { L++,R++; return get(L, R); }
#Verdict Execution timeMemoryGrader output
Fetching results...