记录编号 |
67882 |
评测结果 |
AAAAAAAA |
题目名称 |
服务点设置 |
最终得分 |
100 |
用户昵称 |
raywzy |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.011 s |
提交时间 |
2013-08-15 10:42:17 |
内存使用 |
0.35 MiB |
显示代码纯文本
#include<fstream>
#include<queue>
using namespace std;
ifstream fin("djsa.in");
ofstream fout("djsa.out");
class woca
{
public:
int b;
int c;
};//b表示该节点,c表示权值
int d[200];
priority_queue<woca>q;
bool operator<(woca n,woca m)
{
if(n.c<m.c)
return 0;
else
return 1;
}
int a[101][101];
int n,m;
int dist[200];
void dijkstra(woca T)
{
woca A;
q.push(T);
int x,y,i;
int maxn=0;
int K;
x=T.b;
y=T.c;
dist[x]=0;
while(!q.empty())
{
woca flag;
flag=q.top();
q.pop();
for(i=0;i<=n-1;i++)
{
if(a[flag.b][i]!=0)
{
if(dist[i]>dist[flag.b]+a[flag.b][i])
{
dist[i]=dist[flag.b]+a[flag.b][i];
A.b=i;
A.c=dist[i];
q.push(A);
}
}
}
}
for(i=n-1;i>=0;i--)
if(dist[i]>maxn)
{
maxn=dist[i];
}
K=x;
d[K]=maxn;
}
int main()
{
fin>>n>>m;
int i,x,y,z,j;
int k,max1=99999999;
woca X;
for(i=0;i<=n-1;i++)
for(j=0;j<=n;j++)
a[i][j]=0;
for(i=1;i<=m;i++)
{
fin>>x>>y>>z;
a[x][y]=z;
a[y][x]=z;
}
for(i=0;i<=n-1;i++)
{
for(j=0;j<=n-1;j++)
{dist[j]=999999999;}
X.b=i;
X.c=0;
dijkstra(X);
}
for(i=n-1;i>=0;i--)
{
if(d[i]<=max1)
{
max1=d[i];
k=i;
}
}
fout<<k<<endl;
return 0;
}