제출 #1219261

#제출 시각아이디문제언어결과실행 시간메모리
1219261zhiganov_vWeirdtree (RMI21_weirdtree)C++20
13 / 100
2096 ms2888 KiB
#include "weirdtree.h" #include <bits/stdc++.h> typedef long long ll; using namespace std; const ll N = 1 << 17; ll a[N]; void initialise(int n, int q, int h[]) { for (ll i = 1; i <= n; i++) a[i] = h[i]; } vector<int> b; void cut(int l, int r, int k) { ll lx = 0, rx = 1e9 + 20; while (lx + 1 < rx) { ll mx = (lx + rx) / 2; ll need = 0; for (ll i = l;i<=r;i++) { need += max(a[i] - mx, 0ll); } if (need <= k) rx = mx; else lx = mx; } for (ll i = l;i<=r;i++) { if (a[i] > rx) { k -= a[i] - rx; a[i] = rx; } } for (ll i = l;i<=r;i++) { if (k > 0 && a[i] == rx) { k--; a[i]--; } } } void magic(int i, int x) { a[i] = x; } long long int inspect(int l, int r) { ll ans = 0; for (ll i = l; i <= r; i++) { ans += a[i]; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...