Submission #589684

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
5896842022-07-05 06:24:31PetiWorst Reporter 4 (JOI21_worst_reporter4)C++14
79 / 100
446 ms524288 KiB
#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(){
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...