#include "closing.h"
#include <bits/stdc++.h>
using namespace std;
template <typename T>
using pqg = priority_queue<T, vector<T>, greater<T>>;
int max_score(int N, int X, int Y, long long K, vector<int> U, vector<int> V, vector<int> W)
{
vector adj(N, vector<pair<int, int>>());
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]});
}
pqg<tuple<int, int, int>> pq;
for(auto [child, weight]: adj[X])
pq.push({weight, child, X});
for(auto [child, weight]: adj[Y])
pq.push({weight, child, Y});
long long sum = 0;
int res = 0;
while(not pq.empty())
{
auto [weight, u, p] = pq.top();
pq.pop();
if(sum + weight > K)
break;
sum += weight;
res++;
for(auto [child, childWeight]: adj[u])
if(child != p)
pq.push({weight + childWeight, child, u});
}
return res + 2;
}
# | 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... |