1701:廉价航空

时间限制:2 S   /  内存限制:65536 KB
AC:70   /  Submit:148
问题描述

XY生活在A城市,想坐飞机去B城市看望JG。有一种方法是买A飞到B的机票,还有一种方法是转机(例如A先飞C,C飞D,D飞B,转机可以途经任意多个城市)。有的时候转机机票的总和会比直达的便宜。

某些城市之间并没有直达的航班,如果有航班,则有唯一的机票价格(即不会出现从x飞到y有多条不同的价格信息)。另外由于x飞到y和y飞到x的价格有可能是不同的,故如果x到y之间有往返直达航班,则会有两条记录,分别是x到y的价格和y到x的价格。

XY希望找到最便宜的航空费用。

输入描述

一个正整数n,表示有n组案例。

每组案例中,首先是一个正整数m(m<=100),表示航线的数量,以及两个字符串A和B,表示起点城市名字和终点城市名字。

然后是m行数据,每行数据代表一条航线的信息,由两个字符串x和y,以及一个整数p组成,代表从x城市飞到y城市的机票价格是p元。(1<=p<=5000)

输出描述

针对每组案例,输出一个整数,表示从A到B最便宜的费用(直达或者转机皆可)。如果从A直达或者转机都无法到达B,则输出-1。

每组案例输出完都要换行。


样例输入复制样例

2

4 Xiamen Beijing

Xiamen Beijing 1000

Xiamen Shanghai 400

Shanghai Xiamen 300

Shanghai Beijing 250

3 Xiamen Beijing

Xiamen Shanghai 400

Shanghai Tianjin 200

Xiamen Chengdu 800

样例输出

650

-1

相关

学院编程竞赛题目汇总

厦门大学嘉庚学院第六届编程大赛

2020级cpp第二学期上机练习题第12次(历年题目)

题单#10(最短路径)


Copyright 2016 - 2024 XUJC ACM Team
闽ICP备2020022076号-1