Submission #1293861

#TimeUsernameProblemLanguageResultExecution timeMemory
1293861mahjongfrogPaprike (COI18_paprike)C++20
100 / 100
97 ms17224 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...