#include "crocodile.h"
#include <bits/stdc++.h>
using namespace std;
#define loop(i, a, b) for(int i = a; i <= b; i++)
#define loop_rev(i, a, b) for(int i = a; i >= b; i--)
#define all(x) x.begin(), x.end()
#define sz(x) int(x.size())
#define eb emplace_back
#define pb push_back
using ll = long long;
vector<vector<pair<int, int>>> graph;
int travel_plan(int n, int m, int R[][2], int L[], int k, int P[]) {
graph.resize(n);
loop(i, 0, m-1) {
graph[R[i][0]].pb({ R[i][1], L[i] });
graph[R[i][1]].pb({ R[i][0], L[i] });
}
using pq_t = pair<ll, int>;
priority_queue<pq_t, vector<pq_t>, greater<pq_t>> pq;
vector<int> vis(n + 1);
vector<ll> dist(n + 1);
loop(i, 0, k-1) {
pq.push({ 0, P[i] });
vis[P[i]] = 1;
}
while(!pq.empty()) {
auto [ d, v ] = pq.top(); pq.pop();
++vis[v];
if(vis[v] != 2) {
continue;
}
dist[v] = d;
for(auto [ s, w ] : graph[v]) {
pq.push({ d + w, s });
}
}
return dist[0];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |