# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
487198 | 2021-11-14T19:16:24 Z | AnasBenMoussa | Secret (JOI14_secret) | C++14 | 0 ms | 0 KB |
#include "secret.h" long long a[10000]; int tree[400000]; void build(int v, int tl, int tr) { if (tl == tr) { tree[v] = a[tl]; } else { int tm = (tl + tr) / 2; build( v*2, tl, tm); build( v*2+1, tm+1, tr); tree[v] = Secret(tree[v*2],tree[v*2+1]); } } void Init(int N, int A[]){ for(long long i=0;i<N;i++){ a[i]=A[i]; } build(0,0,N-1); } int sum(int v, int tl, int tr, int l, int r) { if (l > r) return 0; if (l == tl && r == tr) { return tree[v]; } int tm = (tl + tr) / 2; return Secret(sum(v*2, tl, tm, l, min(r, tm)) ,sum(v*2+1, tm+1, tr, max(l, tm+1), r)); } int Query(int L , int R){ return sum(0,0,N-1,L,R); }