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...