Submission #1219251

#TimeUsernameProblemLanguageResultExecution timeMemory
1219251zhiganov_vWeirdtree (RMI21_weirdtree)C++20
5 / 100
2092 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) { b.clear(); for (ll i = l; i <= r; i++) b.push_back(i); sort(b.begin(), b.end(), [&](const int x, const int y)-> bool { if (a[x] != a[y]) return a[x] > a[y]; return x < y; }); ll sm = 0, cnt = 0; for (int i = 0; i < b.size(); i++) { cnt++; sm += a[b[i]]; if (i + 1 == b.size() || sm - cnt * a[b[i + 1]] >= k) { ll p = (sm - k + cnt - 1) / cnt; ll q = k - (sm - p * cnt); if (sm < k) { p = 0, q = 0; } for (ll j = 0; j < q; j++) a[b[j]] = p - 1; for (ll j = q; j <= i; j++) a[b[j]] = p; return; } } } 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...