Submission #1292439

#TimeUsernameProblemLanguageResultExecution timeMemory
1292439basaSecret (JOI14_secret)C++20
0 / 100
334 ms12220 KiB
#include "bits/stdc++.h" #include "secret.h" using namespace std; // #define int long long const int maxn = 1e3 + 5; int n, a[maxn]; int prel[maxn][maxn], prer[maxn][maxn]; void cmp(int l, int r){ if(l == r) return; int mid = (l + r) / 2; for(int i = mid; i >= l; i--){ if(i == mid){ prel[mid][i] = a[i]; continue; } prel[mid][i] = Secret(a[i], prel[mid][i + 1]); } for(int i = mid + 1; i <= r; i++){ if(i == mid + 1){ prer[mid][i] = a[i]; continue; } prer[mid][i] = Secret(prer[mid][i - 1], a[i]); } cmp(l, mid); cmp(mid + 1, r); } int ans; bool f=1; void solve(int l, int r, int l1, int r1){ if(l1 == r1) return; int mid = (l + r) / 2; if(l <= mid && mid < r && f){ ans = Secret(prel[mid][l], prer[mid][r]); f=0; return; } solve(l, r, l1, mid); solve(l, r, mid + 1, r1); } void Init(int tmpn, int tmpa[]){ n = tmpn; for(int i = 0; i < n; i++) a[i] = tmpa[i]; cmp(0, n - 1); } int Query(int l, int r){ if(l == r) return a[l]; f=1; solve(l, r, 0, n - 1); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...