Submission #954524

#TimeUsernameProblemLanguageResultExecution timeMemory
954524IBorySecret (JOI14_secret)C++17
0 / 100
388 ms4972 KiB
#include "secret.h" #include <bits/stdc++.h> #define pii pair<int, int> using namespace std; map<pii, int> D; int N; void DnC1(int L, int R) { if (L >= R) return; int mid = (L + R) >> 1; for (int i = mid - 1; i >= L; --i) D[{i, mid}] = Secret(i, mid); for (int i = mid + 2; i <= R; ++i) D[{mid, i}] = Secret(mid, i); DnC1(L, mid); DnC1(mid + 1, R); } void Init(int _N, int A[]) { N = _N; DnC1(0, N - 1); for (int i = 0; i < N; ++i) D[{i, i}] = A[i]; } int DnC2(int L, int R, int s, int e) { if (L >= R) return -1; int mid = (L + R) >> 1; if (s <= mid && mid < e) { int a = D[{s, mid}], b = D[{mid + 1, e}]; return Secret(a, b); } if (e <= mid) return DnC2(L, mid, s, e); else return DnC2(mid + 1, R, s, e); } int Query(int L, int R) { return DnC2(0, N - 1, L, R); }
#Verdict Execution timeMemoryGrader output
Fetching results...