#include "closing.h"
#include <bits/stdc++.h>
using namespace std;
#define MAXN 200001
#define nl '\n'
#define ff first
#define ss second
#define ll long long
#define ld long double
#define terminator main
#define pll pair<ll,ll>
#define append push_back
#define pii pair<int,int>
#define all(x) (x).begin(),(x).end()
ll d[MAXN][2];
vector<pii> a[MAXN];
void dfs(int v, int u, int t){
for(auto & [i, j] : a[v]){
if(i == u) continue;
d[i][t] = d[v][t] + j;
dfs(i, v, t);
}
}
int max_score(int n, int X, int Y, ll K,
vector<int> U, std::vector<int> V, vector<int> W){
ll k;
int ans;
for(int i = 0; i < n - 1; i++){
a[V[i]].append({U[i], W[i]});
a[U[i]].append({V[i], W[i]});
}
dfs(X, -1, 0);
dfs(Y, -1, 1);
vector<ll> v;
for(int i = 0; i < n; i++)
v.append(min(d[i][0], d[i][1]));
sort(all(v));
ans = k = 0;
for(auto & i : v){
if(k + i > K) break;
k += i;
ans++;
}
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... |