Submission #995272

#TimeUsernameProblemLanguageResultExecution timeMemory
995272yeediotSecret (JOI14_secret)C++17
100 / 100
323 ms4492 KiB
#include<bits/stdc++.h> #include "secret.h" //#include "/Users/iantsai/Downloads/secret/grader.cpp" using namespace std; const int mxn = 1005; int seg[4*mxn], a[mxn], n, v[15][mxn]; void build(int l,int r,int id){ if(l == r){ return; } int mm = l+r>>1; v[id][mm] = a[mm]; v[id][mm+1] = a[mm+1]; for(int i=mm-1;i>=l;i--){ v[id][i] = Secret(a[i], v[id][i+1]); } for(int i=mm+2;i<=r;i++){ v[id][i] = Secret(v[id][i-1], a[i]); } build(l, mm, id+1); build(mm+1, r, id+1); } int query(int l,int r, int id,int ql,int qr){ if(l==r){ return a[l]; } int mm=l+r>>1; if(qr<=mm){ return query(l,mm,id+1,ql,qr); } else if(ql>mm){ return query(mm+1,r,id+1,ql,qr); } else{ return Secret(v[id][ql],v[id][qr]); } } void Init(int N, int b[]){ n = N; for(int i=1;i<=n;i++){ a[i] = b[i-1]; } build(1,n,1); } int Query(int l,int r){ l++; r++; return query(1,n,1,l,r); }

Compilation message (stderr)

secret.cpp: In function 'void build(int, int, int)':
secret.cpp:11:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   11 |     int mm = l+r>>1;
      |              ~^~
secret.cpp: In function 'int query(int, int, int, int, int)':
secret.cpp:27:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   27 |     int mm=l+r>>1;
      |            ~^~
#Verdict Execution timeMemoryGrader output
Fetching results...