Submission #1268418

#TimeUsernameProblemLanguageResultExecution timeMemory
1268418kawhietSecret (JOI14_secret)C++20
0 / 100
339 ms8324 KiB
#include <bits/stdc++.h> #include "secret.h" using namespace std; vector<vector<int>> dp; void divconq(int l, int r) { if (l == r) { return; } int m = (l + r) >> 1; for (int i = m - 1; i >= l; i--) { if (dp[i][m] == -1) { dp[i][m] = Secret(dp[i + 1][m], dp[i][i]); } } for (int i = m + 1; i <= r; i++) { if (dp[m][i] == -1) { dp[m][i] = Secret(dp[m][i - 1], dp[i][i]); } } divconq(l, m); divconq(m + 1, r); } void Init(int N, int A[]) { dp.resize(N, vector<int>(N, -1)); for (int i = 0; i < N; i++) { dp[i][i] = A[i]; } divconq(0, N - 1); } int Query(int l, int r) { for (int i = l; i < r; i++) { if (dp[i][l] != -1 && dp[i + 1][r] != -1) { return Secret(dp[i][l], dp[i + 1][r]); } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...