#abc286e. [abc286_e]Souvenir
[abc286_e]Souvenir
题目描述
从前有 座岛,每个岛上有 个金币,各个岛间有若干条单向航线相连。
你从某个岛开始旅行,经过一个岛(包括最开始所在的岛)就会拿走上面的金币。
现在问你 个问题:从岛 旅行到岛 ,最少要走几条航线,以及恰好走这么多条航线最多能获得多少金币。如果根本无法到达 ,输出 Impossible
。
询问之间相互独立。
输入格式
输入第一行一个整数 表示岛的数量。
接下来一行 个整数表示每个岛上的金币数。
接下来 行每行一个长为 的字符串,第 行字符串的第 个字符若为 Y
则表示岛 和 间有单向航线,否则表示没有。
接下来一行一个整数 表示询问次数。
最后 行每行两个整数 ,询问你从岛 旅行到岛 最少要走几条航线,以及恰好走这么多条航线最多能获得多少金币。
输出格式
对于每个询问输出一行:
- 若 不能到达 ,输出
Impossible
; - 否则,输出从岛 旅行到岛 最少要走几条航线,以及恰好走这么多条航线最多能获得多少金币。
样例解释 1
这些岛的结构如下:
- 对于第 个询问,因为岛 有一条航线通往岛 ,显然最少航线为 条,此时能拿到岛 和岛 上的金币共 个。
- 对于第 个询问,可以证明最少航线为 条,有两种方案 和 ,总金币分别为 和 ,故最多金币为 。
- 对于第 个询问,只有一种方案 可以使航线数最少为 ,所得金币为 。
样例解释 2
笑死,连航线都没有。
数据范围与约定
对于 的数据,$2\le n\le 300,1\le a_i\le 10^9,1\le q\le n(n-1),1\le u_i,v_i\le n$,且询问中的 各不相同。
翻译者:not_Rick_Astley