#include "closing.h"
#include "bits/stdc++.h"
using namespace std;
#define vec vector
int max_score(int N, int X, int Y, long long K, vec<int> U, vec<int> V,
vec<int> W) {
vec<vec<pair<int, int>>> adj(N);
for (int i = 0; i < N - 1; i++) {
adj[U[i]].push_back({V[i], W[i]});
adj[V[i]].push_back({U[i], W[i]});
}
vec<char> vis(N);
priority_queue<pair<long long, int>, vec<pair<long long, int>>,
greater<pair<long long, int>>>
pq;
vis[X] = 1;
vis[Y] = 1;
int cnt = 2;
long long used = 0;
for (auto &e : adj[X])
if (!vis[e.first])
pq.push({e.second, e.first});
for (auto &e : adj[Y])
if (!vis[e.first])
pq.push({e.second, e.first});
while (!pq.empty()) {
auto [w, node] = pq.top();
pq.pop();
if (vis[node])
continue;
if (used + w > K)
break;
used += w;
vis[node] = 1;
cnt++;
for (auto &ne : adj[node])
if (!vis[ne.first])
pq.push({ne.second, ne.first});
}
return cnt;
}
# | 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... |