이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |