Submission #519993

#TimeUsernameProblemLanguageResultExecution timeMemory
519993amunduzbaevSecret (JOI14_secret)C++14
30 / 100
544 ms4352 KiB
#include "bits/stdc++.h" #include "secret.h" using namespace std; #ifndef EVAL #include "grader.cpp" #endif const int M = 1005; int a[M]; int ask(int a, int b){ if(a == -1) return b; if(b == -1) return a; return Secret(a, b); } struct ST{ int tree[M<<2]; void build(int lx = 0, int rx = M, int x = 1){ if(lx == rx) { tree[x] = a[lx]; return; } int m = (lx + rx) >> 1; build(lx, m, x<<1), build(m+1, rx, x<<1|1); tree[x] = ask(tree[x<<1], tree[x<<1|1]); } int get(int l, int r, int lx = 0, int rx = M, int x = 1){ if(lx > r || rx < l) return -1; if(lx >= l && rx <= r) return tree[x]; int m = (lx + rx) >> 1; int c1 = get(l ,r, lx, m, x<<1), c2 = get(l, r, m+1, rx, x<<1|1); return ask(c1, c2); } }tree; void Init(int N, int A[]) { for(int i=0;i<N;i++){ a[i] = A[i]; } tree.build(); } int Query(int L, int R) { return tree.get(L, R); }
#Verdict Execution timeMemoryGrader output
Fetching results...