Submission #735746

#TimeUsernameProblemLanguageResultExecution timeMemory
735746sandry24Secret (JOI14_secret)C++17
6 / 100
8404 ms4364 KiB
#include <bits/stdc++.h> #include "secret.h" using namespace std; #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") typedef long long ll; typedef vector<int> vi; typedef pair<int, int> pi; #define pb push_back #define mp make_pair #define f first #define s second int n; const int maxn = 1005; int st[4*maxn]; int secret(int x, int y){ return (x + 2 * (y / 2)); } int combine(int x, int y){ if(x == -1) return y; else if(y == -1) return x; else return Secret(x, y); } void build(int v, int tl, int tr, int A[]){ if(tl == tr){ st[v] = A[tl]; } else { int tm = (tl+tr)/2; build(v*2, tl, tm, A); build(v*2+1, tm+1, tr, A); st[v] = Secret(st[v*2], st[v*2+1]); } } int range_query(int v, int tl, int tr, int l, int r){ if(l > r) return -1; if(tl == tr) return st[v]; int tm = (tl+tr)/2; return combine(range_query(v*2, tl, tm, l, min(tm, r)), range_query(2*v+1, tm+1, tr, max(tm+1, l), r)); } int Query(int L, int R){ return range_query(1, 0, n-1, L, R); } void Init(int N, int A[]){ n = N; build(1, 0, n-1, A); }
#Verdict Execution timeMemoryGrader output
Fetching results...