# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
645957 | TimDee | Weirdtree (RMI21_weirdtree) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "weirdtree.h"
#include <bits/stdc++.h>
using namespace std;
#define forn(i,n) for (int i=0; i<n; ++i)
using ll = long long;
//#define int long long
struct RMQ {
vector<ll>t,a;
int size=1, n;
int merge(int i, int j) {
if (a[i]>=a[j]) return i;
else return j;
}
void update(int i, int l, int r, int p) {
if (r-l==1) return;
if (r<=p || l>p) return;
int mid=(r+l)>>1;
update(2*i+1,l,mid,p);
update(2*i+2,mid,r,p);
t[i]=merge(t[2*i+1],t[2*i+2]);
}
void update(int i, int l, int r) {
if (r-l==1) return;
int mid=(r+l)>>1;
update(2*i+1,l,mid);