#include "bits/stdc++.h"
#include "crocodile.h"
// #include "grader.cpp"
using namespace std;
#define MAXN 3000000
#define ll long long
#define ff first
#define ss second
ll n, a[MAXN], dp[MAXN], vis[MAXN];
vector <pair<ll, ll>> E[MAXN];
int solve(int x) {
if(dp[x] != -1) return dp[x];
vector <ll> v = {};
vis[x] = 1;
for(auto i : E[x]) {
if(vis[i.ff]) {
if(vis[i.ff] == 2) {
v.push_back(i.ss);
}
continue;
}
if(dp[i.ff] == -1) {
ll nd = solve(i.ff) + i.ss;
v.push_back(nd);
}
}
sort(v.begin(),v.end());
ll jog = INT_MAX;
if((int)v.size() >= 2) jog = v[1];
return dp[x] = jog;
}
int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]){
for(int i = 0;i < M; i++) {
E[R[i][0]].push_back({R[i][1],L[i]});
E[R[i][1]].push_back({R[i][0],L[i]});
}
memset(dp, -1, sizeof dp);
for(int i = 0; i < K; i++) {
vis[P[i]] = 2;
}
return solve(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... |