来源
OpenJudge网站 —— 百练习题集-第4097号习题
要求
总时间限制: 3000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB
描述
北京的地铁是很便利的,几乎覆盖了北京所有的重要地点。如果我们常常坐地铁,也会 非常熟悉地铁上报站的声音。”The next station is ZhongGuanCun. Please get ready for your arrival.”。一个乘客在四号线从上车到下车,会听到一系列的车站名:BeiJingDaXueDongMen, ZhongGuanCun, HaiDianHuangZhuang…
现在需要一个程序,对于一名乘客,报出他在乘坐某号线地铁时,从上车到下车经过的 站名(包括上车的站名和下车的站名)。现在请你写一个程序,来实现这个功能。
输入
第一行 n,表示该地铁线路有 n(n<100)个地铁站。从第 2 行到第 n+1 行是有序的 n 个地铁站的站名,站名由英文字母构成,长度不会超过 100,站名不会重复。第 n+2 行为一 个整数 m(m<100),表示有 m 个乘客需要报站名。这之后 m 行,每行为一个乘客上车的站 名和下车的站名。地铁线路没有环线,但是乘客可以正向坐车,也可以反向坐车。
输出
输出 m 行,每行为每个乘客经过的站名,站名中间用空格分隔。行首或行尾不要有多 余的空格。
样例输入
10
BeiJingDaXueDongMen
ZhongGuanCun
HaiDianHuangZhuang
RenMinDaXue
WeiGongCun
GuoJiaTuShuGuan
DongWuYuan
XiZhiMen
XinJieKou
PingAnLi
2
BeiJingDaXueDongMen RenMinDaXue
GuoJiaTuShuGuan ZhongGuanCun
样例输出
BeiJingDaXueDongMen ZhongGuanCun HaiDianHuangZhuang RenMinDaXue
GuoJiaTuShuGuan WeiGongCun RenMinDaXue HaiDianHuangZhuang ZhongGuanCun
n = int(input())
stations = [input() for i in range(n)]
# print(stations)
m = int(input())
from_to = []
for i in range(m):
f_t = input().strip().split()
if len(f_t) != 2:
continue
from_to.append(f_t)
# print(from_to)
for from_station, to_station in from_to:
if from_station not in stations or to_station not in stations:
print()
continue
from_index = stations.index(from_station)
to_index = stations.index(to_station)
# print(from_index, to_index)
if from_index < to_index:
print(' '.join(stations[from_index:to_index + 1]))
elif to_index == 0:
print(' '.join(stations[from_index::-1]))
else:
print(' '.join(stations[from_index:to_index-1:-1]))
BeiJingDaXueDongMen ZhongGuanCun HaiDianHuangZhuang RenMinDaXue WeiGongCun GuoJiaTuShuGuan DongWuYuan XiZhiMen XinJieKou PingAnLi
PingAnLi XinJieKou XiZhiMen DongWuYuan GuoJiaTuShuGuan WeiGongCun RenMinDaXue HaiDianHuangZhuang ZhongGuanCun BeiJingDaXueDongMen
上车站名等于下车站名。是不太合理,不过测一测看看,而且拿头尾站点来试一试。
样例输入
10
BeiJingDaXueDongMen
ZhongGuanCun
HaiDianHuangZhuang
RenMinDaXue
WeiGongCun
GuoJiaTuShuGuan
DongWuYuan
XiZhiMen
XinJieKou
PingAnLi
2
BeiJingDaXueDongMen BeiJingDaXueDongMen
PingAnLi PingAnLi
样例输出
BeiJingDaXueDongMen
PingAnLi
n=1的边界情形。
样例输入
1
BeiJingDaXueDongMen
2
BeiJingDaXueDongMen BeiJingDaXueDongMen
BeiJingDaXueDongMen PingAnLi
样例输出
BeiJingDaXueDongMen
n=0的边界情形。
样例输入
0
1
BeiJingDaXueDongMen BeiJingDaXueDongMen
样例输出
(注:输出空行)
m=0的边界情形。
样例输入
1
BeiJingDaXueDongMen
0
样例输出
(注:没有输出)
m=1的边界情形。
样例输入
10
BeiJingDaXueDongMen
ZhongGuanCun
HaiDianHuangZhuang
RenMinDaXue
WeiGongCun
GuoJiaTuShuGuan
DongWuYuan
XiZhiMen
XinJieKou
PingAnLi
1
BeiJingDaXueDongMen RenMinDaXue
样例输出
BeiJingDaXueDongMen ZhongGuanCun HaiDianHuangZhuang RenMinDaXue