#include "closing.h"
#include <bits/stdc++.h>
using namespace std;
vector <array<int,2>> v[200001];
int n,x,y,k,ans;
void calc(){
priority_queue <array<int,4>> qu;
qu.push({0,x,-1,0});
qu.push({0,y,-1,1});
while(!qu.empty()){
auto [mydis,i,last,u]=qu.top();
mydis*=-1;
qu.pop();
if(k>=mydis){
ans++;
k-=mydis;
}
else continue;
for(auto [j,c]:v[i]){
if(j==last) continue;
qu.push({(mydis+c)*-1,j,i,u});
}
}
return;
}
int max_score(int N, int X, int Y, long long K,vector<int> U, vector<int> V, vector<int> W)
{
n=N,x=X,y=Y,k=K;
ans=0;
for(int i=0;i<n;i++) v[i].clear();
for(int i=0;i<n-1;i++){
v[U[i]].push_back({V[i],W[i]});
v[V[i]].push_back({U[i],W[i]});
}
calc();
return ans;
}
# | 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... |