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...