第四次实验
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
const int N = 1010;
int n, e, g[N][N], d[N];
string s1, s2;
void ford() {
memset(d, 0X3f, sizeof d);
for (int k = 1; k <= n; k++) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
g[i][j] = min(g[i][j], g[i][k] + g[k][j]);
}
}
}
}
void dijkstra() {
}
int main() {
memset(g, 0X3f, sizeof g);
scanf("%d", &n);
getchar();
getline(cin, s1);
scanf("%d", &e);
getchar();
for (int i = 0; i < e; i++) {
getline(cin, s2);
char a, b;
int num;
sscanf(s2.c_str(), "%c %c %d", &a, &b, &num);
g[a - '@'][b - '@'] = num;
g[b - '@'][a - '@'] = num;
}
ford();
int ans1 = 0X3f3f3f3f, ans2 = 0X3f3f3f3f;
char answer1, answer2;
for (int i = 1; i <= n; i++) {
int res = 0, sum =0;
for (int j = 1; j <= n; j++) {
if (i != j) {
res = max(res, g[i][j]);
sum += g[i][j];
}
}
if (res < ans1) {
ans1 = res;
answer1 = char(i + '@');
}
if(sum < ans2){
ans2 = sum;
answer2 = char(i + '@');
}
}
printf("%c\n", answer1);
printf("%c\n", answer2);
return 0;
}