Submission #1190449

#TimeUsernameProblemLanguageResultExecution timeMemory
1190449boclobanchatSecret (JOI14_secret)C++20
100 / 100
350 ms4536 KiB
#include"secret.h" #include<bits/stdc++.h> using namespace std; const int MAXN=1024; struct range { int l,mid,r;vector<int> va,vb; }; range RR[MAXN]; int val[MAXN],cnt=0; void dnc(int l,int r) { if(r-l<=1) return ; int mid=(l+r)/2; dnc(l,mid); dnc(mid+1,r); vector<int> va,vb; int x=0,y=0; for(int i=mid;i>=l;i--) { if(i==mid) x=val[i]; else x=Secret(val[i],x); va.push_back(x); } for(int i=mid+1;i<=r;i++) { if(i==mid+1) y=val[i]; else y=Secret(y,val[i]); vb.push_back(y); } reverse(va.begin(),va.end()); RR[++cnt]={l,mid,r,va,vb}; } void Init(int N,int A[]) { for(int i=0;i<N;i++) val[i]=A[i]; dnc(0,N-1); } int Query(int l,int r) { if(l==r) return val[l]; if(l+1==r) return Secret(val[l],val[r]); for(int i=1;i<=cnt;i++) if(RR[i].l<=l&&l<=RR[i].mid&&RR[i].mid<r&&r<=RR[i].r) return Secret(RR[i].va[l-RR[i].l],RR[i].vb[r-(RR[i].mid+1)]); }

Compilation message (stderr)

secret.cpp: In function 'int Query(int, int)':
secret.cpp:41:1: warning: control reaches end of non-void function [-Wreturn-type]
   41 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...