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] << ' ';
}