Submission #152843

#TimeUsernameProblemLanguageResultExecution timeMemory
152843cgiosyFireworks (APIO16_fireworks)C++17
7 / 100
3 ms376 KiB
#include <bits/stdc++.h> #define rep(i,x,n) for(int i=x; i<n; i++) using namespace std; int main() { ios_base::sync_with_stdio(false);cin.tie(nullptr); int N, M; long s=0; cin>>N>>M; vector<vector<pair<int, int>>> G(N); rep(i, 1, N+M) { int p, w; cin>>p>>w; --p; G[p].push_back({i, w}); } function<pair<int, int>(int, int)> f=[&](int i, int m) { if(i>=N) return make_pair(m, m); int k=0, n=G[i].size(); vector<int> A(n*2), L(n), R(n); for(auto[j,w]:G[i]) { auto[a,b]=f(j, m+w); A[k*2]=L[k]=a, A[k*2+1]=R[k]=b, k++; } sort(begin(A), end(A)); int l=max(m, A[n-1]), r=max(m, A[n]); m=(l+r)/2; rep(j, 0, n) s+=m<L[j] ? L[j]-m : R[j]<m ? m-R[j] : 0; return make_pair(l, r); }; f(0, 0); cout<<s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...