Submission #1292323

#TimeUsernameProblemLanguageResultExecution timeMemory
1292323basaSecret (JOI14_secret)C++20
0 / 100
349 ms12180 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){ 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(a[i], prer[mid][i - 1]); } if(l == mid) return; cmp(l, mid); cmp(mid + 1, r); } int ans; void solve(int l, int r, int l1, int r1){ int mid = (l + r) / 2; if(l1 > r || r1 < l) return; if(l1 <= mid && r1 >= mid){ ans = Secret(prel[mid][l1], prer[mid][r1]); 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){ ans = 0; solve(l - 1, r - 1, 0, n - 1); return ans; } // signed main() // { // cin.tie(0) -> sync_with_stdio(0); // }
#Verdict Execution timeMemoryGrader output
Fetching results...