#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
#define pb push_back
#define ff first
#define ss second
const ll inf = 1e18;
int max_score(int n, int x, int y, ll k, vector<int> u, vector<int> v, vector<int> w){
x++; y++;
for (int i = 0; i < (n - 1); i++){
u[i]++; v[i]++;
}
vector<pii> g[n + 1];
for (int i = 0; i < (n - 1); i++){
g[u[i]].pb({v[i], w[i]});
g[v[i]].pb({u[i], w[i]});
}
int S = 0;
for (int i = 1; i <= n; i++){
if (g[i].size() == 1){
S = i;
break;
}
}
vector<int> f(n + 2); f[1] = S;
for (int i = 2; i <= n; i++){
for (auto [j, w]: g[f[i - 1]]){
if (j != f[i - 2]){
f[i] = j;
break;
}
}
}
f[n + 1] = 0;
vector<ll> dx(n + 1, inf), dy(n + 1, inf);
queue<int> q;
q.push(x); dx[x] = 0;
while (!q.empty()){
int v = q.front(); q.pop();
for (auto [u, w]: g[v]){
if (dx[u] == inf){
dx[u] = dx[v] + w;
q.push(u);
}
}
}
q.push(y); dy[y] = 0;
while (!q.empty()){
int v = q.front(); q.pop();
for (auto [u, w]: g[v]){
if (dy[u] == inf){
dy[u] = dy[v] + w;
q.push(u);
}
}
}
int out = 0, px = 0, py = 0;
for (int i = 1; i <= n; i++){
if (f[i] == x){
px = i;
}
if (f[i] == y){
py = i;
}
}
for (int l = 1; l <= px; l++){
for (int r = px; r <= n; r++){
vector<ll> d(n + 1);
ll tot = 0; int cc = r - l + 1;
for (int i = l; i <= r; i++){
d[f[i]] = dx[f[i]];
tot += d[f[i]];
}
vector<ll> p(n + 1);
for (int i = 0; i <= n; i++){
p[i] = max(0LL, dy[i] - d[i]);
}
if (tot > k) continue;
cc++; // y
int i = py - 1, j = py + 1;
while (tot <= k && (i || j <= n)){
out = max(out, cc);
if (p[f[i]] > p[f[j]]){
tot += p[f[j]];
j++;
cc++;
}
else {
tot += p[f[i]];
i--;
cc++;
}
}
if (tot <= k){
out = max(out, cc);
}
}
}
return out;
}
# | 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... |