Submission #1318345

#TimeUsernameProblemLanguageResultExecution timeMemory
1318345wangzhiyi33Secret (JOI14_secret)C++20
0 / 100
337 ms8312 KiB
#include "secret.h"
#include<bits/stdc++.h>
using namespace std;
int pre[1002][1002];
int a[1002];

void solve(int l,int r){
    if(l==r)return;
    int mid=(l+r)/2;
    pre[mid][mid]=a[mid];

    for(int q=mid-1;q>=l;q--){
     // cout<<q<<endl;
      pre[q][mid]=Secret(pre[q+1][mid],a[q]);
    }
    pre[mid+1][mid+1]=a[mid+1];
    for(int q=mid+2;q<=r;q++){
      pre[mid+1][q]=Secret(pre[mid+1][q-1],a[q]);
    }

    solve(l,mid),solve(mid+1,r);
}

void Init(int N, int A[]) {
  for(int q=0;q<N;q++){
    a[q]=A[q];
  }
  memset(pre,-1,sizeof pre);
  solve(0,N-1);
}

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