Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #define pb push_back
- #define siz 30005
- #define inf 1000000004
- #define mp make_pair
- #define rep(i,n) for(int i=0;i<n;i++)
- #define ll long long
- #define pii pair<int,int>
- using namespace std;
- int fx[]={0,0,-1,+1};
- int fy[]={-1,1,0,0};
- int u,x,mi=0,ans=0,y,cnt=1;
- vector<pii> vec[siz];
- int vis[siz]={0};
- int dis[siz];
- int DKT(int u)
- {
- memset(vis,0,sizeof vis);
- memset(dis,0,sizeof dis);
- queue<int>q;
- q.push(u);
- vis[u]=1;
- dis[u]=0;
- mi=0,ans=0;
- while(!q.empty())
- {
- int v=q.front();
- q.pop();
- rep(i,vec[v].size())
- {
- int w=vec[v][i].first;
- int we=vec[v][i].second;
- if(vis[w]==0)
- {
- vis[w]=1;
- dis[w]=dis[v]+we;
- if(dis[w]>mi){mi=dis[w];ans=w;}
- q.push(w);
- }
- }
- }
- return ans;
- }
- int main()
- {
- int t;
- cin>>t;
- while(t--)
- {
- rep(i,siz)
- vec[i].clear();
- int n;cin>>n;n--;
- while(n--)
- {
- scanf("%d %d %d",&u,&x,&y);
- vec[u].pb(mp(x,y));
- vec[x].pb(mp(u,y));
- }
- int v=DKT(u);
- int w=DKT(v);
- printf("Case %d: %d\n",cnt++,dis[w]);
- }
- return 0;
- }
- Chat Conversation End
- Type a message...
Advertisement
Add Comment
Please, Sign In to add comment