#YHSP2007. 直达航班
直达航班
题目描述
有 座编号为 至 的城市,城市间由单向直达航班连接。航班的可用性通过 个长度为 的字符串 表示,若 的第 个字符为 'Y' ,则表示从编号为 的城市到编号为 的城市有直达航班;若为 'N' ,则无直达航班。
每座城市都销售一种纪念品,编号为 的城市所售纪念品价值为 。
小T目前位于城市 ,想要通过直达航班前往城市 ( 与 不同 ),且每到达一个城市(包括 和 )都会购买一件纪念品。当从城市 到城市 存在多条路线时,小T遵循以下决策规则:
- 优先减少从城市 到城市 所经过的直达航班数量。
- 在航班数量相同的情况下,尽量使购买纪念品的总价值最大化。
给定 对不同的城市 ,需要针对每一对城市判断小T能否从 到 旅行。若能,找出满足上述规则的路线中所经过的“直达航班数量”和“纪念品总价值”;若不能,则输出 “Impossible” 。
输入格式
- 第一行:输入整数 ( ),表示城市的数量。
- 第二行:输入 个整数 至 ( ),代表各城市纪念品的价值。
- 接下来 行:每行输入长度为 的字符串 至 ,由 'Y' 和 'N' 组成,代表直达航班的信息。
- 再接下来输入整数 ( ),表示询问的总数。
- 最后 行:每行输入两个整数 ( 且 ),代表起止城市的编号。
输出格式
输出 行:
- 若无法从城市 到城市 旅行,则输出 "Impossible" 。
- 若可以旅行,则按照顺序输出所经过的“直达航班数量”和“纪念品总价值”,两者用空格分隔。
示例
- 输入示例1
5
30 50 70 20 60
NYNYN
NNYNN
NNNYY
YNYNY
YNNNN
3
4 3
3 5
1 3
- 输出示例1
1 90
1 130
2 150
- 解释:
对于第1个询问,从4到3有2条不同路线,4 -> 3 直达的路线航班最少,经过1个航班,纪念品总价值为 ;对于第2个询问,从3到5有2条不同路线,3 -> 5 直达的路线航班最少,经过1个航班,纪念品总价值为 ;对于第3个询问,从1到3有2条不同路线,路线1 -> 2 -> 3 与路线1 -> 4 -> 3 都经过2个航班,前者纪念品总价值为 ,后者为 ,选择总价值大的,即输出2 150 。
- 输入示例2
10
1 2 1 2 5 2 1 4 3 1
NYNNNYYNYN
NNYNNNNNNN
NNNYNNNNNN
NNNNNNNNNN
NNNYNNNNNN
NNNNYNNNNN
NNNNNNNYNN
NNNYNNNNNN
NNNNNNNNNY
NNNYNNNNNN
3
1 4
4 1
1 10
- 输出示例2
3 10
Impossible
2 5
数据范围
- 城市数量 满足 。
- 纪念品价值 满足 。
- 字符串 长度为 ,由 'Y' 和 'N' 组成。
- 询问次数 满足 ,起止城市编号 满足 且 。
相关
在下列比赛中: