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 "crocodile.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define MAXM 100005
#define ff first
#define ss second
priority_queue <pair<int, int>, vector <pair<int, int>>, greater <pair<int, int>>> q;
vector <pair <int, int>> adj[MAXM];
int val[MAXM], dp[MAXM];
int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) {
//	return 111;
	for (int i = 0; i < M; ++i) {
		int u = R[i][0], v = R[i][1], w = L[i];
		adj[u].pb ({v, w});
		adj[v].pb ({u, w});
	}
	for (int i = 0; i < K; ++i) {
		q.push({0, P[i]});
		val[P[i]] = 1;
	}
	while (!q.empty()) {
		int x = q.top().ff;
		int y = q.top().ss;
		q.pop();
		if (val[y] == 2) continue;
		val[y]++;
		if (val[y] == 1) continue;
		dp[y] = x;
		for (auto i : adj[y]) {
			int v = i.ff, w = i.ss;
			if (val[v] != 2) q.push({x + w, v});
		} 
	}
	return dp[0];
}
//
//
//#include <stdio.h>
//#include <stdlib.h>
//
//#define MAX_N 50000
//#define MAX_M 10000000
//
//static int N, M;
//static int R[MAX_M][2];
//static int L[MAX_M];
//static int K;
//static int P[MAX_N];
//
//void read_input()
//{
//  int i;
//  scanf("%d %d %d",&N,&M,&K);
//  for(i=0; i<M; i++)
//    scanf("%d %d %d",&R[i][0],&R[i][1],&L[i]);
//  for(i=0; i<K; i++)
//    scanf("%d",&P[i]);
//}
//
//int main() {
//	freopen ("input.txt", "r", stdin);
//  int ans;
//  read_input();
//  ans = travel_plan(N,M,R,L,K,P);
//  printf("%d\n", ans);
//  return 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... |