Submission #1292328

#TimeUsernameProblemLanguageResultExecution timeMemory
1292328AliMark71Secret (JOI14_secret)C++20
100 / 100
343 ms6428 KiB
// // main.cpp // EliteCamp 2025 // // Created by Ali AlSalman on 14/11/2025. // #include <bits/stdc++.h> //#define INTERACTIVE //#define TESTCASES //#define SPOJ_BULLSCHEI__SZ__E__KIJETESANPAKALU__ template<typename T> using vec = std::vector<T>; using namespace std; int Secret(int x, int y); int n; vec<vec<int>> S; void myOwnInit(int l, int r, int a[], int d = 0) { if (l + 1 == r) { S[d][l] = a[l]; return; } int mid = (l + r) / 2; S[d][mid - 1] = a[mid - 1]; S[d][mid] = a[mid]; for (int i = mid + 1; i < r; i++) S[d][i] = Secret(S[d][i - 1], a[i]); for (int i = mid - 2; l <= i; i--) S[d][i] = Secret(a[i], S[d][i + 1]); myOwnInit(l, mid, a, d + 1); myOwnInit(mid, r, a, d + 1); } int myOwnQuery(int l, int r, int ql, int qr, int d = 0) { if (l + 1 == r) return S[d][l]; int mid = (l + r) / 2; if (qr <= mid) r = mid; else if (mid <= ql) l = mid; else return Secret(S[d][ql], S[d][qr - 1]); return myOwnQuery(l, r, ql, qr, d + 1); } void Init(int n, int a[]) { ::n = n; S.resize(1<<(31-__builtin_clz(n)), vec<int>(n)); myOwnInit(0, n, a); } int Query(int l, int r) { return myOwnQuery(0, n, l, ++r); } //int main() { //#ifndef INTERACTIVE // ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); //#endif // // int t = 1; //#ifdef TESTCASES // cin>>t; //#endif // // for (int i = t; i--;) { //#if defined(TESTCASES) && defined(SPOJ_BULLSCHEI__SZ__E__KIJETESANPAKALU__) // cout<<"Case "<<t-i<<":\n"; //#elif defined(SPOJ_BULLSCHEI__SZ__E__KIJETESANPAKALU__) //#warning SPOJ_BULLSCHEIßE__KIJETESANPAKALU__ without TESTCASES doesn't ducking make sense! //#endif // solve(); // } // return 0; //}
#Verdict Execution timeMemoryGrader output
Fetching results...