# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
460815 | BT21tata | Crocodile's Underground City (IOI11_crocodile) | C++17 | 0 ms | 0 KiB |
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<bits/stdc++.h>
#include "crocodile.h"
typedef long long ll;
using namespace std;
vector<pair<ll,ll> >g[100005];
priority_queue<pair<ll,ll> >q;
ll dis[100005], ans;
bool used[100005], ext[100005];
void dfs(int v, int p)
{
for(pair<ll, ll> u : g[v])
{
if(u.first!=p)
{
dis[u.first]=dis[v]+u.second;
dfs(u.first, v);
}
}
}
ll ans(int v, int p)
{
vector<int>w;
for(pair<ll, ll> u : g[v])
{
if(u.first==p) continue;
if(ext[u.first]) w.push_back(dis[u.first]);
else w.push_back(ans(u.first, v));
}
sort(w.begin(), w.end());
return w[1];
}
int travel_plan(int n, int m, int R[][2], int L[], int k, int p[])
{
for(int i=0; i<m; i++)
{
g[R[i][0]].push_back({R[i][1], L[i]});
g[R[i][1]].push_back({R[i][0], L[i]});
}
for(int i=0; i<k; i++)
ext[P[i]]=1;
dis[0]=0;
dfs(0, 0);
return ans(0, 0);
}
/*
5 4 3
0 1 2
0 2 3
3 2 1
2 4 4
1 3 4
7
*/