Submission #738210

#TimeUsernameProblemLanguageResultExecution timeMemory
738210onebit1024Secret (JOI14_secret)C++17
0 / 100
439 ms16588 KiB
#include "secret.h"
#include <bits/stdc++.h>
using namespace std;

vector<vector<int>>dp;
void recur(int l, int r,vector<int>&a){
  if(l >= r)return;
  int m = (l+r)/2;
  for(int i = m-1;i>=l;--i)dp[i][m] = Secret(a[i],dp[i+1][m]);
  for(int i = m+2;i<=r;++i)dp[m+1][i] = Secret(dp[m+1][i-1],a[i]);
  recur(l,m-1,a);
  recur(m+1,r,a);
}
void Init(int N, int A[]) {
  dp = vector<vector<int>>(N, vector<int>(N,-1e9));
  vector<int>a;
  for(int i = 0;i<N;++i)dp[i][i] = A[i],a.push_back(A[i]);
  recur(0,N-1,a);
}

int Query(int L, int R) {
  for(int i = L;i<=R;++i){
    if(dp[L][i]!=-1e9 && dp[i+1][R]!=-1e9){
      return Secret(dp[L][i],dp[i+1][R]);
    }
  }
  return dp[L][R];
}
#Verdict Execution timeMemoryGrader output
Fetching results...