比赛 |
ctime蒟蒻生日赛 |
评测结果 |
AAAAAAAA |
题目名称 |
双服务点设置 |
最终得分 |
100 |
用户昵称 |
胡嘉兴 |
运行时间 |
0.077 s |
代码语言 |
C |
内存使用 |
0.14 MiB |
提交时间 |
2017-10-17 15:07:38 |
显示代码纯文本
#include <stdio.h>
#define N 120
#define INF 99999999
int MIN(int a, int b)
{
if(a > b)
{
return b;
}
else
{
return a;
}
}
int main()
{
int n, m, i, j, k, e[N][N], min = INF, ansi, ansj;
freopen("djsb.in", "r+", stdin);
freopen("djsb.out", "w+", stdout);
scanf("%d%d", &n, &m);
for(i = 0; i < N; i++)
{
for(k = 0; k < N; k++)
{
if(i == k)
{
e[i][k] = 0;
continue;
}
e[i][k] = INF;
}
}
for(i = 0; i < m; i++)
{
int x, y, z;
scanf("%d%d%d", &x, &y, &z);
e[x][y] = z;
e[y][x] = z;
}
for(k = 0; k < n; k++)
{
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
if(e[i][k] + e[k][j] < e[i][ j])
{
e[i][ j] = e[i][k] + e[k][ j];
}
}
}
}
for(i = 0; i < n; i++)
{
for( j = i + 1; j < n; j++)
{
int maxs = 0;
for(k = 0; k < n; k++)
{
int a = MIN(e[i][k], e[ j][k]);
if(a > maxs)
{
maxs = a;
}
}
if(maxs < min)
{
min = maxs;
ansi = i;
ansj = j;
}
}
}
printf("%d %d\n", ansi, ansj);
fclose(stdin);
fclose(stdout);
return 0;
}