#include <bits/stdc++.h>
#include "secret.h"
using namespace std;
int dp[1010][1010], n;
void daq(int l, int r, int A[]){
    int m = (l+r)>>1;
    dp[m][m] = A[m];
    dp[m+1][m+1] = A[m+1];
    for(int i = m+2; i <= r; i++)
        dp[m+1][i] = Secret(dp[m+1][i-1],A[i]);
    for(int i = m-1; i >= l; i--)
        dp[i][m] = Secret(A[i],dp[i+1][m]);
    if(l < m) daq(l,m,A);
    if(r > m+1) daq(m+1,r,A);
}
void Init(int N, int A[]) {
    n = N; daq(0,n-1,A);
}
int Query(int L, int R) {
    int l = 0, r = n-1;
    while(l!=r){
        int m = (l+r)>>1;
        if(m >= L &&  m < R) return Secret(dp[L][m],dp[m+1][R]);
        if(m==R) return dp[L][m];
        if(m < L) l = m+1;
        else r = m;
    }
    return dp[l][r];
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |