#include<bits/stdc++.h>
#define F first
#define S second
#define INF 1<<28
using namespace std;
typedef pair< int,int > point;
vector< point > graph[301];
vector< int > vcos(301);
int n,m;
int dijkstra(int s,vector< int >& v){
priority_queue< point,vector< point >,greater< point > > pq;
pq.push(point(0,s));
fill(v.begin(),v.end(),INF);
v[s]=0;
while(!pq.empty()){
point p=pq.top();pq.pop();
int now=p.S;
int cost=p.F;
for(int i=0;i<graph[now].size();++i){
int next=graph[now][i].S;
int ncos=graph[now][i].F+cost;
if(ncos<v[next]){
v[next]=ncos;
pq.push(point(ncos,next));
}
}
}
return *max_element(++v.begin(),v.end());
}
int main(){
scanf("%d%d",&n,&m);
vector< int > v(n+1);
int a,b,c;
for(int i=0;i<m;++i){
scanf("%d%d%d",&a,&b,&c);
graph[a].push_back(point(c,b));
graph[b].push_back(point(c,a));
}
int minpos=INF;
for(int i=1;i<=n;++i){
fill(v.begin(),v.end(),INF);
vcos[i]=dijkstra(i,v);
minpos=min(minpos,vcos[i]);
}
printf("%d\n",minpos);
return 0;
}
./Main.cpp: In function ‘int main()’:
./Main.cpp:31:24: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&n,&m);
^
./Main.cpp:35:33: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d%d",&a,&b,&c);
^