#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
const ll mod=1e9;
const int MAKS=1e5+1;
int n,k, cvb;
vector<int>g[MAKS];
int h[MAKS];
int dfs(int x, int ma){
vector<int>v;
for(int i:g[x]){
if(i==ma) continue;
v.pb(dfs(i,x));
}
sort(v.begin(), v.end());
int cem=h[x];
for(int i:v){
if(i+cem<=k){
cem+=i;
}
else{
cvb++;
//cem=h[i];
}
}
return cem;
}
int main(){
//int n,k;
cin>>n>>k;
for(int i=1; i<=n; i++){
int a;
cin>>a;
h[i]=a;
}
for(int i=1; i<n; i++){
int u,v;
cin>>u>>v;
g[u].pb(v);
g[v].pb(u);
}
cvb=0;
dfs(1,-1);
cout<<cvb;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |