Submission #40051

#TimeUsernameProblemLanguageResultExecution timeMemory
40051funcsrSecret (JOI14_secret)C++14
30 / 100
735 ms6020 KiB
#include "secret.h" #include <iostream> #include <vector> #include <algorithm> using namespace std; #define rep(i, n) for (int i=0; i<(n); i++) #define all(x) x.begin(), x.end() #define uniq(x) x.erase(unique(all(x)), x.end()) #define index(x, y) (int)(lower_bound(all(x), y) - x.begin()) #define pb push_back #define NIL 1145141919 #define MAX_N (1<<10) int seg[MAX_N*2-1]; int op(int x, int y) { if (x == NIL) return y; if (y == NIL) return x; return Secret(x, y); } int query(int a, int b, int k=0, int l=0, int r=MAX_N) { if (b <= l || r <= a) return NIL; if (a <= l && r <= b) return seg[k]; return op(query(a, b, k*2+1, l, (l+r)/2), query(a, b, k*2+2, (l+r)/2, r)); } void Init(int N, int A[]) { fill(seg, seg+MAX_N*2-1, NIL); rep(i, N) seg[i+MAX_N-1] = A[i]; for (int i=MAX_N-2; i>=0; i--) { seg[i] = op(seg[i*2+1], seg[i*2+2]); } } int Query(int L, int R) { return query(L, R+1); }
#Verdict Execution timeMemoryGrader output
Fetching results...