#include <iostream>
#include <vector>
#include <queue>
#define NUM 105
#define INF 0x3fffffff
using namespace std;
struct Edge{
int to;
int cost;
}edge;
vector<Edge> edges[NUM];
int visited[NUM];
int dist[NUM];
void init(){
for(int i=0;i<NUM;i++){
visited[i]=0;
dist[i]=INF;
}
}
char Data[20];
int main(){
int N;
scanf("%d",&N);
for(int i=1;i<=N;i++){
for(int j=1;j<i;j++){
scanf("%s",Data);
if(Data[0]!='x'){
int d=atoi(Data);
edge.to=j;
edge.cost=d;
edges[i].push_back(edge);
edge.to=i;
edge.cost=d;
edges[j].push_back(edge);
}
}
}
init();
int from=1;
dist[from]=0;
for(int t=0;t<N-1;t++){
visited[from]=1;
for(int index=0;index<edges[from].size();index++){
int to=edges[from][index].to;
int cost=edges[from][index].cost;
if(visited[to]==0&&dist[to]>dist[from]+cost){
// cout<<from<<" update "<<to<<endl;
dist[to]=dist[from]+cost;
}
}
int min=INF;
for(int k=1;k<=N;k++){
if(visited[k]==0&&dist[k]<min){
min=dist[k];
from=k;
}
}
}
int max=0;
for(int k=2;k<=N;k++){
if(dist[k]>max){
max=dist[k];
}
}
cout<<max<<endl;
return 0;
}
poj 1502 MPI dijkstra
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.