【问题描述】
很久很久之前,森林里住着一群兔子。有一天,兔子们希望去赏樱花,但当他们到了上野公园门口却忘记了带地图。现在兔子们想求助于你来帮他们找到公园里的最短路。
【输入形式】
输入分为三个部分。
第一个部分有P+1行(P<30),第一行为一个整数P,之后的P行表示上野公园的地点。
第二个部分有Q+1行(Q<50),第一行为一个整数Q,之后的Q行每行分别为两个字符串与一个整数,表示这两点有直线的道路,并显示二者之间的矩离(单位为米)。
第三个部分有R+1行(R<20),第一行为一个整数R,之后的R行每行为两个字符串,表示需要求的路线。
【输出形式】
输出有R行,分别表示每个路线最短的走法。其中两个点之间,用->(矩离)->相隔。
【样例输入】
6
Ginza
Sensouji
Shinjukugyoen
Uenokouen
Yoyogikouen
Meijishinguu
6
Ginza Sensouji 80
Shinjukugyoen Sensouji 40
Ginza Uenokouen 35
Uenokouen Shinjukugyoen 85
Sensouji Meijishinguu 60
Meijishinguu Yoyogikouen 35
2
Uenokouen Yoyogikouen
Meijishinguu Meijishinguu
【样例输出】
Uenokouen->(35)->Ginza->(80)->Sensouji->(60)->Meijishinguu->(35)->Yoyogikouen
Meijishinguu
【样例说明】
【评分标准】
#include<iostream>
#include<map>
#include<cstdio>
using namespace std;
map<string,int>map1;
map<int,string>map2;
string point_name;
string point_name_1;
int point_number;
int point_path_number;
int point_path;
int point_path_question;
int point_number_1;
int point_number_2;
//floyd算法处理后找最短路径
void find(int a,int b,int c,int arr[30][30],int arr_next[30][30]){
//更新距离和后元素数组 floy
for(int k = 0;k