//
// 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 time | Memory | Grader output |
|---|
| Fetching results... |