Submission #1318344

#TimeUsernameProblemLanguageResultExecution timeMemory
1318344wangzhiyi33Secret (JOI14_secret)C++20
0 / 100
332 ms8324 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 a[L]; }
#Verdict Execution timeMemoryGrader output
Fetching results...