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>
#include <functional>
#include <queue>
#define ll long long
#define ff first
#define ss second
#define ln endl
using namespace std;
vector<vector<int>> A;
ll n, x, y, k;
vector<pair<ll, pair<ll, ll>>> edge;
ll dijkstra(){
priority_queue<pair<ll, ll>, vector<pair<ll, ll>>, greater<pair<ll, ll>>> que;
que.push({0, x});
que.push({0, y});
vector<bool> reachable(n, 0);
while (!que.empty()){
auto cur = que.top();
que.pop();
if (reachable[cur.ss] or k<cur.ff){
continue;
}
// cout << cur.ss << ln;
reachable[cur.ss]=1;
k-=cur.ff;
for (auto i:A[cur.ss]){
auto v = edge[i].ss.ff^edge[i].ss.ss^cur.ss;
if (reachable[v] or cur.ff+edge[i].ff>k) continue;
que.push({cur.ff+edge[i].ff, v});
}
}
ll ans=0;
for (ll i=0; i<n; i++) {
if (reachable[i]) {
// cout << i << ln;
ans++;
}
}
return ans;
}
int max_score(int N, int X, int Y, long long K,
std::vector<int> U, std::vector<int> V, std::vector<int> W)
{
A.resize(N);
n=N; x=X; y=Y; k=K;
for (ll i=0; i<n-1; i++){
A[U[i]].push_back(i);
A[V[i]].push_back(i);
edge.push_back({W[i],{V[i], U[i]}});
}
return dijkstra();
}
# | 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... |