제출 #1293810

#제출 시각아이디문제언어결과실행 시간메모리
1293810littleprofessorPaprike (COI18_paprike)C++20
0 / 100
26 ms11240 KiB
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

vector<vector<int>> qonsuluq_siyahisi;
vector<long long> bibar_aciliqlari;

long long maksimal_aciliq_k;
int umumilikde_kesim_sayi = 0;


long long dfs_hesabla_kes(int cari_bibar, int valideyn) {

    long long cari_cem_aciliq = bibar_aciliqlari[cari_bibar];

    for (int qonsu : qonsuluq_siyahisi[cari_bibar]) {
        if (qonsu != valideyn) {
            long long usaqdan_oturulen_aciliq = dfs_hesabla_kes(qonsu, cari_bibar);
            cari_cem_aciliq += usaqdan_oturulen_aciliq;
        }
    }
    
    if (cari_cem_aciliq > maksimal_aciliq_k) {
        umumilikde_kesim_sayi++;
        return 0; 
    }
    return cari_cem_aciliq;
}


int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int N;
    cin >> N >> maksimal_aciliq_k;

    bibar_aciliqlari.resize(N + 1);
    qonsuluq_siyahisi.resize(N + 1);

    for (int i = 1; i <= N; ++i) {
        cin >> bibar_aciliqlari[i];
    }

    for (int i = 0; i < N - 1; ++i) {
        int u, v;
        cin >> u >> v;
        
        qonsuluq_siyahisi[u].push_back(v);
        qonsuluq_siyahisi[v].push_back(u);
    }
    
    dfs_hesabla_kes(1, 0);
    cout << umumilikde_kesim_sayi << endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...