제출 #1293803

#제출 시각아이디문제언어결과실행 시간메모리
1293803ayxanesedzade10Paprike (COI18_paprike)C++20
100 / 100
85 ms18268 KiB
#include <bits/stdc++.h> #define ll long long #define pb push_back #define all(x) x.begin(),x.end() #define ld long double using namespace std; const ll sz=1e5+100; vector<ll>v[sz]; ll used[sz],h[sz],sum[sz],cnt=0,n,k; void dfs(ll u) { used[u]=1; sum[u]+=h[u]; vector<ll>ed; for(auto to:v[u]){ if(used[to]) continue; dfs(to); ed.pb(sum[to]); } sort(all(ed)); for(int i=0;i<ed.size();i++){ if(sum[u]+ed[i]<=k){ sum[u]+=ed[i]; } else cnt++; } } int main() { cin>>n>>k; for(int i=1;i<=n;i++){ cin>>h[i]; } for(int i=1;i<n;i++){ ll a,b;cin>>a>>b; v[a].pb(b); v[b].pb(a); } dfs(1); cout<<cnt<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...