#include "secret.h"
#include <bits/stdc++.h>
using namespace std;
int dat[1005][1005], a[1005], n;
void dnc(int l, int r) {
if(l >= r) return ;
int m = (l + r) / 2;
dat[m][m] = a[m];
dat[m+1][m+1] = a[m+1];
for(int i=m-1; i>=l; i--) dat[i][m] = Secret(a[i], dat[i+1][m]);
for(int i=m+2; i<=r; i++) dat[m+1][i] = Secret(dat[m+1][i-1], a[i]);
dnc(l, m);
dnc(m+1, r);
}
int query(int tl, int tr, int l, int r) {
int m = (tl + tr) / 2;
if(l <= m && m < r) return Secret(dat[l][m], dat[m+1][r]);
if(l > m) return query(m+1, tr, l, r);
return query(tl, m, l, r);
}
void Init(int N, int A[]) {
n = N;
for(int i=0; i<N; i++) a[i] = A[i];
dnc(0, n-1);
}
int Query(int L, int R) {
return (L == R ? a[L] : query(0, n-1, L, R));
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |