/******************************************************************************
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 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... |