#include <bits/stdc++.h>
#include "closing.h"
using namespace std;
#define fi first
#define se second
typedef long long ll;
typedef long double ld;
mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
ll inf = 1e15;
vector<vector<pair<ll, ll>>> g;
int max_score(int n, int x, int y, ll k, vector<int> u, vector<int> v, vector<int> w) {
g.resize(n);
for (int i = 0; i < n - 1; i++) {
g[u[i]].push_back({v[i], w[i]});
g[v[i]].push_back({u[i], w[i]});
}
vector<ll> dist(n, inf);
vector<pair<ll, ll>> st;
dist[x] = 0;
dist[y] = 0;
int cnt = 0;
st.push_back({0, x});
st.push_back({0, y});
int q = 0;
ll cur = k;
while (q < st.size()) {
ll d = st[q].fi, ve = st[q].se;
q++;
if (cur >= d) {
cur -= d;
cnt++;
}
for (auto [uv, ti] : g[ve]) {
if (dist[uv] == inf) {
dist[uv] = dist[ve] + ti;
st.push_back({dist[uv], uv});
}
}
}
return cnt;
}
/*
signed main() {
}*/
# | 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... |
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |