# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
589684 | Peti | Worst Reporter 4 (JOI21_worst_reporter4) | C++14 | 446 ms | 524288 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 <bits/stdc++.h>
using namespace std;
vector<vector<int>> g;
vector<int> h, ert;
vector<map<int, long long>> mps;
void bejar(int akt){
for(int x : g[akt]){
bejar(x);
if(mps[x].size() > mps[akt].size()) swap(mps[akt], mps[x]);
for(auto p : mps[x]) mps[akt][p.first] += p.second;
}
auto it = mps[akt].find(h[akt]);
if(it == mps[akt].end()){
mps[akt][h[akt]] = ert[akt];
it = mps[akt].find(h[akt]);
} else{
mps[akt][h[akt]] += ert[akt];
}
long long tmp = ert[akt];
while(it != mps[akt].begin() && prev(it)->second < tmp){
tmp -= prev(it)->second;
mps[akt].erase(prev(it));
}
if(it != mps[akt].begin()) prev(it)->second -= tmp;
}
int main(){
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |