Submission #963868

#TimeUsernameProblemLanguageResultExecution timeMemory
963868new_accFireworks (APIO16_fireworks)C++14
100 / 100
296 ms78512 KiB
#include<bits/stdc++.h> #define fi first #define se second #define pitem item* using namespace std; typedef long long ll; typedef unsigned long long ull; typedef vector<int> vi; typedef vector<ll> vl; const int N=1e6+10; const int SS=1<<19; const int INFi=2e9; const ll INFl=1e16; const ll mod2=998244353; const ll mod=1e9+7; const ll mod3=2027865967; const ll p=70032301; const ull p2=913; const int L=20; int n,m; ll t[N],t2[N]; vi graf[N]; multiset<ll>* dfs(int v){ if(v>n){ multiset<ll>* xd= new multiset<ll>; xd->insert(t[v]); xd->insert(t[v]); t2[v]=-t[v]; return xd; } multiset<ll>* c=nullptr; for(auto u:graf[v]){ multiset<ll>* x=dfs(u); t2[v]+=t2[u]; if(!c or c->size()<x->size()) swap(c,x); while(x and x->size()){ c->insert(*(x->begin())); x->erase(x->begin()); } delete x; } for(int i=0;i<graf[v].size()-1;i++){ auto it=c->end(); it--; t2[v]+=*it; c->erase(it); } t2[v]-=t[v]; auto it=c->end(); it--; auto it2=c->end(); it2--,it2--; ll v1=*it+t[v],v2=*it2+t[v]; c->erase(it),c->erase(it2); c->insert(v1),c->insert(v2); return c; } void solve(){ cin>>n>>m; for(int i=2;i<=n+m;i++){ int a; cin>>a>>t[i]; graf[a].push_back(i); } multiset<ll>* r=dfs(1); auto it=r->end(); it--; cout<<t2[1]+*it<<"\n"; } int main(){ ios_base::sync_with_stdio(0),cin.tie(0); int tt=1; while(tt--) solve(); }

Compilation message (stderr)

fireworks.cpp: In function 'std::multiset<long long int>* dfs(int)':
fireworks.cpp:42:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |     for(int i=0;i<graf[v].size()-1;i++){
      |                 ~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...