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;
bool open[100005];
long long dp[100005];
vector<pair<long long, long long>> v[100005];
int travel_plan(int n, int m, int r[][2], int l[], int k, int p[])
{
    for(int i=0;i<n;i++)
    {
        dp[i]=-1;
        open[i]=false;
    }
    for(int i=0;i<m;i++)
    {
        v[ r[i][0] ].push_back({r[i][1], l[i]});
        v[ r[i][1] ].push_back({r[i][0], l[i]});
    }
    multiset<pair<long long, int>> s;
    for(int i=0;i<k;i++)
    {
        open[ p[i] ] = true;
        s.insert({0, p[i]});
    }
    while(!s.empty())
    {
        int x = s.begin()->second;
        long long len = s.begin()->first;
        s.erase(s.begin());
        if(!open[x])
        {
            open[x]=true;
            continue;
        }
        if(dp[x] != -1)
            continue;
        dp[x]=len;
        for(auto it : v[x])
        {
            if(dp[it.first] == -1)
                s.insert({len + it.second, it.first});
        }
    }
    return dp[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... |