Submission #966932

#TimeUsernameProblemLanguageResultExecution timeMemory
966932Perl32Secret (JOI14_secret)C++14
100 / 100
389 ms4456 KiB
//I wrote this code 4 u <3 #include <bits/stdc++.h> #include <secret.h> using namespace std; using ll = long long; #ifdef LOCAL #include "algo/debug.h" #else #define debug(...) 42 #endif constexpr int lg = 11; constexpr int maxN = 1001; int dat[lg][maxN]; int a[maxN], msk[maxN]; void divi(int l, int r, int lvl) { if (l == r) return; int m = (l + r) >> 1; dat[lvl][m] = a[m]; for (int i = m - 1; i >= l; --i) dat[lvl][i] = Secret(a[i], dat[lvl][i + 1]); dat[lvl][m + 1] = a[m + 1]; for (int i = m + 2; i <= r; ++i) dat[lvl][i] = Secret(dat[lvl][i - 1], a[i]); for (int i = m + 1; i <= r; ++i) msk[i] ^= 1 << lvl; divi(l, m, lvl + 1); divi(m + 1, r, lvl + 1); } void Init(int N, int A[]) { for (int i = 0; i < N; ++i) a[i] = A[i]; divi(0, N - 1, 0); } int Query(int l, int r) { if(l == r) return a[l]; int lvl = __builtin_ctz(msk[l] ^ msk[r]); return Secret(dat[lvl][l], dat[lvl][r]); } //signed main(int32_t argc, char *argv[]) { // ios_base::sync_with_stdio(false); // cin.tie(nullptr); // //} /* */
#Verdict Execution timeMemoryGrader output
Fetching results...