This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
#include "crocodile.h"
using namespace std;
typedef long long ll;
//#define int ll
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
vector<pair<int,int> >v[100010];
set<int> win;
int dfs(int pos,int prec){
  if(win.find(pos)!=win.end())return 0;
  vector<int> s;
  for(auto k:v[pos]){
    if(k.first==prec)continue;
    s.push_back(dfs(k.first,pos)+k.second);
  }
  sort(s.begin(),s.end());
  s.push_back(1e12);
  s.push_back(1e12);
  return s[1];
}
int travel_plan(int N,int M,int R[][2],int L[],int K,int P[]){
  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]});
  }
  for(int i=0;i<K;i++)win.insert(P[i]);
  return dfs(0,-1);
}
Compilation message (stderr)
crocodile.cpp: In function 'int dfs(int, int)':
crocodile.cpp:18:19: warning: overflow in implicit constant conversion [-Woverflow]
   s.push_back(1e12);
                   ^
crocodile.cpp:19:19: warning: overflow in implicit constant conversion [-Woverflow]
   s.push_back(1e12);
                   ^| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |