Submission #1207588

#TimeUsernameProblemLanguageResultExecution timeMemory
1207588edga1Secret (JOI14_secret)C++20
30 / 100
391 ms4408 KiB
#include "secret.h" using namespace std; int st[3000]; int a[1005]; int n; void build(int x, int xl, int xr){ if(xl==xr){ st[x]=a[xl]; return; } int mid=(xl+xr)/2; build(x*2+1,xl,mid); build(x*2+2,mid+1,xr); st[x]=Secret(st[x*2+1],st[x*2+2]); } int get(int x, int xl, int xr, int l, int r){ if(xl>=l && xr<=r) return st[x]; if(xr<l || xl>r) return -1; int mid=(xl+xr)/2; int r1=get(x*2+1,xl,mid,l,r); int r2=get(x*2+2,mid+1,xr,l,r); if(r1==-1) return r2; if(r2==-1) return r1; return Secret(r1,r2); } void Init(int N, int A[]) { n=N; for(int i=0; i<n; i++){ a[i]=A[i]; } build(0,0,n-1); } int Query(int L, int R) { return get(0,0,n-1,L,R); }
#Verdict Execution timeMemoryGrader output
Fetching results...