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;
const int INF = 2e9;
int N, M, K;
vector<vector<array<int, 2>>> adj;
int E[1000005][3];
bool on[100005];
int dis[100005][2];
typedef pair<int,int> P;
bool vis[100005];
int travel_plan(int _N, int _M, int _R[][2], int _L[], int _K, int _P[]) {
    N = _N, M = _M, K = _K;
    adj.resize(N);
    int i, j;
    for(i=0;i<M;i++) {
        E[i][0] = _R[i][0], E[i][1] = _R[i][1];
        E[i][2] = _L[i];
    }
    for(i=0;i<M;i++) {
        adj[E[i][0]].push_back({E[i][1], E[i][2]});
        adj[E[i][1]].push_back({E[i][0], E[i][2]});
    }
    for(i=0;i<K;i++) {
        on[_P[i]] = true;
    }
    for(i=0;i<N;i++) dis[i][0] = dis[i][1] = INF;
    priority_queue<P, vector<P>, greater<P>> PQ;
    for(i=0;i<N;i++) {
        if(on[i]) {
            dis[i][0] = dis[i][1] = 0;
            PQ.push(P(dis[i][1], i));
        }
    }
    while(!PQ.empty()) {
        P k = PQ.top();
        PQ.pop();
        int id = k.second;
        if(vis[id]) continue;
        vis[id] = true;
        for(auto it : adj[id]) {
            int d = dis[id][1] + it[1];
            int n = it[0];
            if(dis[n][0] >= d) {
                dis[n][1] = dis[n][0];
                dis[n][0] = d;
                PQ.push(P(dis[n][1], n));
            }
            else if(dis[n][1] > d) {
                dis[n][1] = d;
                PQ.push(P(dis[n][1], n));
            }
        }
    }
    return dis[0][1];
}
Compilation message (stderr)
crocodile.cpp: In function 'int travel_plan(int, int, int (*)[2], int*, int, int*)':
crocodile.cpp:15:12: warning: unused variable 'j' [-Wunused-variable]
   15 |     int i, j;
      |            ^| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |