Submission
Status:
PPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
Score: 100
User: hmmm
Problemset: Sirabyrinth 6
Language: cpp
Time: 0.007 second
Submitted On: 2025-03-06 22:27:18
#include<bits/stdc++.h>
using namespace std;
using ll=long long int;
const int N=2e4+5;
vector<array<ll,2>> g[N];
ll dp[N];
inline ll rec(int x,int p){
// if(dp[x]!=-1) return dp[x];
ll cnt=0;
for(auto e:g[x]){
auto xx=e[0];
auto ll=e[1];
if(xx==p) continue;
cnt=max(rec(xx,x)+ll,cnt);
}
return dp[x]=cnt;
}
int main(){
ios::sync_with_stdio(0); cin.tie(0);
int n,k;
cin >> n >> k;
ll sum=0;
for(int i=1;i<n;i++){
int u,v,w;
cin >> u >> v >> w;
g[u].push_back({v,w});
g[v].push_back({u,w});
sum+=w;
}
memset(dp,-1,sizeof dp);
cout << sum*2-rec(k,k);
// cout << "\n";
// for(int i=0;i<n;i++) cout << dp[i] << ' ';
}