# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1147267 | Math4Life2020 | Weirdtree (RMI21_weirdtree) | C++20 | 0 ms | 0 KiB |
#include "weirdtree.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long; using pii = pair<ll,ll>;
vector<ll> h;
void initialise(int N, int Q, int h0[]) {
for (ll i=0;i<N;i++) {
h.push_back(h0[i]);
}
}
void cut(int l, int r, int k) {
l--; r--;
while (k>0) {
ll xloc = -1;
ll mval = 0;
for (ll i=l;i<=r;i++) {
if (h[i]>mval) {
mval = h[i];
xloc = i;
}
}
if (mval==0) {
break;
}
h[xloc]--;
k--;
}
}
void magic(int i, int x) {
h[i-1]=x;
}
ll inspect(ll l, ll r) {
l--; r--;
ll vf = 0;
for (ll i=l;i<=r;i++) {
vf += h[i];
}
return vf;
}