#include <bits/stdc++.h>
using namespace std;
int best_path(int n, int k, int h[][2], int l[]) {
int x = n;
vector<vector<pair<int, int>>> a(n);
for (int i = 0; i + 1 < n; ++i) a[h[i][0]].emplace_back(h[i][1], l[i]), a[h[i][1]].emplace_back(h[i][0], l[i]);
function<void(int, int, int, int)> dfs = [&] (int i, int p, int c, int w) {
if (w == k) {
x = c;
return;
}
if (c == x || w > k) return;
for (auto [j, z] : a[i]) dfs(j, i, c + 1, w + z);
};
for (int i = 0; i < n; ++i) dfs(i, -1, 0, 0);
if (x == n) x = -1;
return x;
}
# | 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... |