This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "closing.h"
#include <bits/stdc++.h>
#include <functional>
#include <queue>
#define ll long long
#define ff first
#define ss second
#define ln endl
using namespace std;
vector<vector<ll>> A;
ll n, x, y, k;
vector<pair<ll, pair<ll, ll>>> edge;
void dfs(ll u, ll p, vector<pair<ll, ll>> &reach, ll cd){
reach.push_back({cd, u});
for (auto i:A[u]){
ll v = edge[i].ss.ff^edge[i].ss.ss^u;
if (v==p) continue;
dfs(v, u, reach, cd+edge[i].ff);
}
}
ll simple(){
vector<pair<ll, ll>> reach;
dfs(x, -1, reach, 0);
dfs(y, -1, reach, 0);
vector<ll> dist(n);
sort(reach.begin(), reach.end());
// cout << reach.size() << endl;
// for (auto ch:reach){
// cout << ch.ff << "|" << ch.ss << endl;
// }
ll ans=0;
for (ll i=0; i<2*n; i++){
if (k+dist[reach[i].ss]-reach[i].ff>=0){
// cout << reach[i].ff << "|" << reach[i].ss << " ";
k=k+dist[reach[i].ss]-reach[i].ff;
dist[reach[i].ss]=reach[i].ff;
ans++;
}else break;
}
// cout << endl;
return ans;
}
int max_score(int N, int X, int Y, long long K,
std::vector<int> U, std::vector<int> V, std::vector<int> W)
{
A.clear(); edge.clear();
A.resize(N);
edge.resize(N-1);
n=N; x=X; y=Y; k=K;
for (ll i=0; i<n-1; i++){
A[U[i]].push_back(i);
A[V[i]].push_back(i);
edge[i]={W[i],{V[i], U[i]}};
}
return simple();
}
# | 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... |