Submission #1293790

#TimeUsernameProblemLanguageResultExecution timeMemory
1293790ChocoPaprike (COI18_paprike)C++17
100 / 100
37 ms25452 KiB
#include <bits/stdc++.h> using namespace std; #pragma GCC optimize("O3") #define ll long long #define fori(i,j,k) for(ll i=j; i<=k;i++) #define study ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); #define pb push_back #define all(s) s.begin(),s.end() #define ins insert #define ss second #define ff first ll sz=2e5+10; ll INF=1e12; ll mod=1e9+7; ll n,k; vector<ll>subt(sz,-1),a(sz,-1),check(sz,0); vector<vector<ll>>g(sz); ll ans=0; void dfs(ll t,ll par=-1){ check[t]=1; subt[t]=a[t]; priority_queue<ll>so; for(auto x: g[t]){ if(x==par) continue; dfs(x,t); subt[t]+=subt[x]; so.push(subt[x]); } while(subt[t]>k){ ans++; subt[t]-=so.top(); so.pop(); } } void work(){ cin>>n>>k; fori(i,1,n){ cin>>a[i]; } fori(i,1,n-1){ ll a,b; cin>>a>>b; g[a].pb(b); g[b].pb(a); } dfs(1,-1); cout<<ans<<endl; } int main() { study; ll t=1; //cin>>t; fori(i,1,t) work(); } /* */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...