#include #include #include #include #include #include int i,j,k; int SIZE=600; // actual graph size const int MAXSIZE=600; const int MAX_INT=33767; // matrix of weights int gmatrix[MAXSIZE][MAXSIZE]; // parents of each vertex int parent[MAXSIZE]; void prims() { vector heap(SIZE); vector extracted(SIZE); int i; for(i=0;i::const_iterator min=min_element(heap.begin(),heap.end()); int v=min-heap.begin(); extracted[v]=true; heap[v]=MAX_INT; ex++; int i; for(i=0;igmatrix[v][w]) { heap[w]=gmatrix[v][w]; parent[w]=v; } } } } void main() { cin >> SIZE; int a,b,c; for(i=0;i> a >> b >> c; if(a==-1) break; gmatrix[b][a]=gmatrix[a][b]=c; } prims(); int maxdist=0,dist; for(i=0;imaxdist) maxdist=dist; } cout << maxdist; return 0; }