#include"bits/stdc++.h"
#include "secret.h"
using namespace std;
using ll=long long;
#define S second
#define F first
const int N=10;
vector<vector<int>>dst(N,vector<int>(1<<N,-1));
vector<int>a;
bool bt(int x,int y){
return (x&(1<<y))>0;
}
void Init(int n,int A[]){
for(int i=0;i<n;i++)a.push_back(A[i]);
for(int l=0;l<10;l++){
for(int i=0;i<n;i++){
if(bt(i,l)){
if(!bt(i-1,l))dst[l][i]=a[i];
else dst[l][i]=Secret(dst[l][i-1],a[i]);
}
}
for(int i=n-1;i>=0;i--){
if(!bt(i,l)){
if(bt(i+1,l))dst[l][i]=a[i];
else dst[l][i]=Secret(a[i],dst[l][i+1]);
}
}
}
}
int Query(int l,int r){
if(l==r)return a[l];
int msb=__builtin_clz(l^r)-22;
int res=a[l];
for(int i=l+1;i<=r;i++)res=Secret(res,a[i]);
return res;
return Secret(dst[msb][l],dst[msb][r]);
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |