#include "closing.h"
#include<bits/stdc++.h>
#define LL long long
#include <vector>
using namespace std;
int max_score(int N, int X, int Y, long long K,
std::vector<int> U, std::vector<int> V, std::vector<int> W){
++X , ++Y;
for(int i = 0;i < N - 1;i ++){
++U[i] , ++V[i];
}
vector<vector<pair<int , int>>> g(N + 1);
for(int i = 0;i < N - 1;i ++){
g[U[i]].emplace_back(V[i] , W[i]);
g[V[i]].emplace_back(U[i] , W[i]);
}
int r;
for(int i = 1;i <= N;i ++){
if((int)g[i].size() == 1){
r = i;
}
}
int timer = 0;
vector<int> o = {0} , id(N + 1);
function<void(int , int)> dfs = [&](int u , int p){
id[u] = ++timer;
o.emplace_back(u);
for(auto [v , w] : g[u]){
if(v != p){
dfs(v , u);
}
}
};
dfs(r , r);
vector<vector<LL>> dist;
function<void(int , int)> DFS = [&](int u , int p){
for(auto [v , w] : g[u]){
if(v != p){
dist.back()[v] = dist.back()[u] + w;
DFS(v , u);
}
}
};
dist.emplace_back(vector<LL>(N + 1));
DFS(X , X);
dist.emplace_back(vector<LL>(N + 1));
DFS(Y , Y);
int best = 0;
for(int l1 = id[X];l1 >= 1;l1 --){
for(int r1 = id[X];r1 <= N;r1 ++){
for(int l2 = id[Y];l2 >= 1;l2--){
for(int r2 = id[Y];r2 <= N;r2 ++){
vector<LL> v(N + 1);
for(int i = l1;i <= r1;i ++){
v[o[i]] = max(v[o[i]] , dist[0][o[i]]);
}
for(int i = l2;i <= r2;i ++){
v[o[i]] = max(v[o[i]] , dist[1][o[i]]);
}
if(accumulate(v.begin() , v.end() , 0LL) <= K){
best = max(best , r1 - l1 + 1 + r2 - l2 + 1);
}
}
}
}
}
return best;
}
# | 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... |