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>
using namespace std;
using ll = long long;
using vll = vector <ll>;
using vi = vector <int>;
const ll MAXN = 2E5+16;
vector <pair <ll, ll> > adj[MAXN];
int max_score (int n, int u1, int u2, ll k, vi u, vi v, vi w) {
fill(adj, adj+n, vector <pair <ll, ll> > ({}));
for (ll i = 0; i < n-1; i++) {
adj[u[i]].push_back({ v[i], w[i] });
adj[v[i]].push_back({ u[i], w[i] });
}
vll dis(n);
vector <char> vis(n, false);
priority_queue <pair <ll, ll> > pq;
dis[u1] = 0;
dis[u2] = 0;
pq.push({ 0, u1 });
pq.push({ 0, u2 });
ll ans = 0;
while (pq.size()) {
ll u = pq.top().second; pq.pop();
if (k-dis[u] < 0) break;
k -= dis[u];
vis[u] = true;
ans++;
for (auto [v, w] : adj[u]) {
if (vis[v]) continue;
dis[v] = dis[u]+w;
pq.push({ -dis[v], v });
}
}
return int(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... |