| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1361623 | midari | 경주 (Race) (IOI11_race) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
ll n,k,i,j;
cin>>n>>k;
vector<ll>adj[200100];
ll dist[1005][1005];
for (i=1; i<n; i++){
ll u,v,l; cin>>u>>v>>l;
adj[u].push_back(v);
adj[v].push_back(u);
dist[u][v]=l;
dist[v][u]=l;
}
ll e=LLONG_MAX;
ll dfh1[200100],dfh2[200100];
for (i=1; i<=n; i++){
queue<ll>q;
q.push(i);
ll vis[n+5]={0};
dfh1[i]=0;
dfh2[i]=0;
while (!q.empty()){
ll a=q.front();
q.pop();
vis[a]=1;
for (auto u : adj[a]){
if (vis[u]!=1){
vis[u]=1;
q.push(u);
dfh1[u]=dfh1[a]+dist[a][u];
dfh2[u]=dfh2[a]+1;
if (dfh1[u]==k){
e=min(e,dfh2[u]);
}
}
}
}
}
if (e==LLONG_MAX){
cout<<-1;
}
else {
ccout<<e;
}
}