Submission #1189129

#TimeUsernameProblemLanguageResultExecution timeMemory
1189129qrnSecret (JOI14_secret)C++20
30 / 100
396 ms4448 KiB
#include "secret.h" #include <bits/stdc++.h> using namespace std; #define intt int #define pb push_back const intt mxN = 2e3 + 31; vector<intt> seg(4 * mxN); intt a[mxN], border; // secret_count, MAX_VALUE = 1000000000; void build(intt node, intt l, intt r) { if(l == r) { seg[node] = a[l]; return; } intt mid = (l + r) / 2; build(node * 2, l, mid); build(node * 2 + 1, mid + 1, r); seg[node] = Secret(seg[node * 2], seg[node * 2 + 1]); } intt ret = 0; intt get(intt node, intt l, intt r, intt ql, intt qr) { if(ql > r || qr < l || ql > qr) return -1; if(ql <= l && r <= qr) { return seg[node]; } intt mid = (l + r) / 2; intt sol = get(node * 2, l, mid, ql, qr); intt sag = get(node * 2 + 1, mid + 1, r, ql, qr); if(sol == -1) return sag; if(sag == -1) return sol; return Secret(sol, sag); } void Init(int N, int A[]) { for(intt i = 0; i < N; i++) { a[i] = A[i]; } build(1, 0, N - 1); border = N - 1; } int Query(int L, int R) { return get(1, 0, border, L, R); }
#Verdict Execution timeMemoryGrader output
Fetching results...