fork download
  1. #include<iostream>
  2. #include<vector>
  3. using namespace std;
  4. #define ll long long
  5. #define ull unsigned long long
  6.  
  7. vector<vector<int>> G[50001];
  8. bool P[50001];
  9. int res,start;
  10.  
  11. void DFS(int u,int path){
  12. P[u]=1;
  13.  
  14. for(vector<int>vt:G[u]){
  15. if(!P[vt[0]])
  16. DFS(vt[0],path+vt[1]);
  17. }
  18.  
  19. if(path>res){
  20. res=path;
  21. start=u;
  22. }
  23. }
  24.  
  25. void clearp(int n){
  26. for(int i=1;i<=n;i++)
  27. P[i]=0;
  28. }
  29.  
  30. void exec(){
  31. int n,u,v,l;
  32. cin>>n;
  33.  
  34. clearp(n);
  35. for(int i=1;i<=n;i++) G[i].clear();
  36.  
  37. for(int i=1;i<n;i++){
  38. cin>>u>>v>>l;
  39. G[u].push_back({v,l});
  40. G[v].push_back({u,l});
  41. }
  42.  
  43. res=-1e9,start=1;
  44. DFS(1,0);
  45.  
  46. clearp(n);
  47.  
  48. DFS(start,0);
  49.  
  50. cout<<res<<endl;
  51. }
  52.  
  53. int main(){
  54. ios_base::sync_with_stdio(false);
  55. cin.tie(0);
  56. int t;
  57. cin>>t;
  58.  
  59. while(t--)
  60. exec();
  61.  
  62. return 0;
  63. }
  64.  
Success #stdin #stdout 0.01s 5352KB
stdin
1
6
1 2 3
2 3 4 
2 6 2
6 4 6
6 5 5
stdout
12