# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1128885 | Nurislam | Secret (JOI14_secret) | C++17 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "secret.h"
#include "grader.cpp"
int lc[10][1001];
void Init(int n, int a[]) {
for(int i = 1; i <= n; i++){
lc[0][i] = a[i-1];
}
for(int i = 1; i < 10; i++){
int len = (1<<i), hal = (1<<(i-1));
for(int j = 1; j+len-1 <= n; j++){
lc[i][j] = Secret(lc[i-1][j], lc[i-1][j+hal]);
}
}
}
int Query(int l, int r) {
int ans = INT_MIN;
for(int i = 9; i >= 0; i--){
int len = (1<<i);
if(l + len-1 <= r){
if(ans == INT_MIN)ans = lc[i][l];
else{
ans = Secret(ans, lc[i][l]);
}
l+=len;
}
}
return ans;
}