Submission #949573

#TimeUsernameProblemLanguageResultExecution timeMemory
949573JakobZorzSecret (JOI14_secret)C++17
0 / 100
401 ms15888 KiB
#include "secret.h" int n; int arr[1024]; int tl[2048][1024]; int tr[2048][1024]; void init(int node,int l,int r){ if(l==r-1) return; int m=(l+r)/2; if(m>1000) return; tl[node][m-1]=arr[m-1]; for(int i=m-2;i>=l;i--) tl[node][i]=Secret(arr[i],tl[node][i+1]); tr[node][m+1]=arr[m]; for(int i=m+2;i<=r/*&&i<=1000*/;i++) tr[node][i]=Secret(tr[node][i-1],arr[i-1]); init(2*node,l,m); init(2*node+1,m,r); } void Init(int N,int A[]){ n=N; for(int i=0;i<n;i++) arr[i]=A[i]; init(1,0,1024); } int query(int node,int l,int r,int a,int b){ int m=(l+r)/2; if(b<m) return query(2*node,l,m,a,b); if(m<a) return query(2*node+1,m,r,a,b); if(a==m) return tr[node][b]; if(b==m) return tl[node][a]; return Secret(tl[node][a],tr[node][b]); } int Query(int L,int R){ return query(1,0,1024,L,R+1); }
#Verdict Execution timeMemoryGrader output
Fetching results...