제출 #228832

#제출 시각아이디문제언어결과실행 시간메모리
228832staniewzkiCrocodile's Underground City (IOI11_crocodile)C++17
100 / 100
664 ms70884 KiB
#include<bits/stdc++.h>
using namespace std;
 
#include "crocodile.h"

int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) {
	vector<vector<pair<int, int>>> adj(N);
	for(int i = 0; i < M; i++) {
		int u = R[i][0], v = R[i][1];
		adj[u].emplace_back(v, L[i]);
		adj[v].emplace_back(u, L[i]);
	}

	vector<int> vis(N);
	priority_queue<pair<int, int>> Q;
	for(int i = 0; i < K; i++) {
		vis[P[i]]++;
		Q.emplace(0, P[i]);
	}

	while(!Q.empty()) {
		auto [d, v] = Q.top();
		Q.pop();
		if(vis[v]++ == 1) {
			if(v == 0) 
				return -d;
			for(auto &[u, w] : adj[v])
				Q.emplace(d - w, u);
		}
	} 
	return -1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...