#include <bits/stdc++.h>
using namespace std;
#define l2 long long
#define ii pair<int, int>
#define iii pair<int, ii>
#define f first
#define s second
int main() {
int n, k;
cin >> n >> k;
vector<ii> v[n];
bool mem[n];
for (int i = 1; i < n; i++) {
int x, y, w;
cin >> x >> y >> w;
x--; y--;
v[x].push_back({y, w});
v[y].push_back({x, w});}
l2 ans = 0;
for (int i = 0; i < n; i++) {
queue<iii> q;
q.push({i, {0, 0}}); //kg, len
memset(mem, false, sizeof(mem));
while (!q.empty()) {
iii temp = q.front();
mem[temp.f] = true;
if (temp.s.f - temp.s.s >= k) ans++;
for (ii p: v[temp.f]) {
if (mem[p.f]) continue;
q.push({p.f, {max(temp.s.f, p.s), temp.s.s+1}});}
q.pop();}}
cout << ans;
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... |