Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define forsn(i, s, n) for(int i=s;i<int(n);i++)
- #define forn(i, n) forsn(i, 0, n)
- #define all(v) v.begin(), v.end()
- #define NACHO ios_base::sync_with_stdio(0);cin.tie(NULL);
- vector<bool> visited;
- void dfs(int node, vector<vector<pair<int,int>>> &adj, vector<int> &dist){
- visited[node] = 1;
- for(auto u : adj[node]){
- if(!visited[u.first]){
- dist[u.first] = dist[node]+u.second;
- dfs(u.first, adj, dist);
- }
- }
- }
- int main(){
- //ifstream cin("puesto.in");
- //ofstream cout("puesto.out");
- int m; cin >> m;
- vector<vector<pair<int,int>>> adj (300001);
- forn(i, m){
- int u, v, w; cin >> u >> v >> w;
- u--; v--;
- adj[u].push_back({v, w});
- adj[v].push_back({u, w});
- }
- visited.resize(300001, 0);
- vector<int> dist (300001, 0);
- dfs(0, adj, dist);
- int nodito;
- int maxi = 0;
- forn(i, 300001){
- if(dist[i] > maxi){
- maxi = dist[i];
- nodito = i;
- }
- }
- visited.resize(300001, 0);
- dist.resize(300001, 0);
- dfs(nodito, adj, dist);
- maxi = 0;
- forn(i, 300001){
- maxi = max(maxi, dist[i]);
- }
- printf("%.1f\n", maxi/2.0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement