이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,int> pli;
int travel_plan(int N,int M,int R[][2],int L[],int K,int P[]) {
vector<vector<pli>> gr(N);
for(int i=0;i<M;++i) {
gr[R[i][0]].push_back({L[i],R[i][1]});
gr[R[i][1]].push_back({L[i],R[i][0]});
}
vector<bool> vis(N);
priority_queue<pli,vector<pli>,greater<pli>> pq;
vector<vector<ll>> dist(N);
for(int i=0;i<K;++i) {
vis[P[i]]=1;
dist[P[i]].push_back(0);
for(pli p:gr[P[i]]) {
ll ed=p.first;
int v=p.second;
pq.push({ed,v});
}
}
while(!pq.empty()) {
ll d=pq.top().first;
int u=pq.top().second;
dist[u].push_back(d);
pq.pop();
if(dist[u].size()<2||vis[u]) continue;
vis[u]=1;
for(pli p:gr[u]) {
int v=p.second;
ll ed=p.first;
if(vis[v]) continue;
pq.push({ed+dist[u][1],v});
}
}
return dist[0][1];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |