luogu#P2583. 地铁间谍

地铁间谍

题目描述

特工玛利亚被送到 S 市执行一个特别危险的任务。她需要利用地铁完成他的任务,S 市的地铁只有一条线路运行,所以并不复杂。

玛利亚有一个任务,现在的时间为 00,她要从第一个站出发,并在最后一站的间谍碰头。玛利亚知道有一个强大的组织正在追踪她,她知道如果一直呆在一个车站,她会有很大的被抓的风险,躲在运行的列车中是比较安全的。所以,她决定尽可能地呆在运行的列车中,她只能往前或往后坐车。

玛利亚为了能准时且安全的到达最后一个车站与对方碰头,需要知道在在车站最小等待时间总和的计划。你必须写一个程序,得到玛丽亚最短的等待时间。当然,到了终点站之后如果时间还没有到规定的时刻,她可以在车站里等着对方,只不过这个等待的时刻也是要算进去的。

这个城市有 nn 个车站,编号是 1n1-n,火车是这么移动的:从第一个车站开到最后一个车站。或者从最后一站发车然后开会来。火车在每特定两站之间行驶的时间是固定的,我们也可以忽略停车的时间,玛利亚的速度极快,所以他可以迅速上下车即使两辆车同时到站。

输入格式

输入文件包含多组数据,每组数据都由 77 行组成。

  • 11 行一个正整数 N (2N50)N\ (2 \le N \le 50) 表示站的数量。
  • 22 行一个正整数 T (0T2000)T\ (0 \le T \le 2000) 表示需要的碰头时间。
  • 331n11\sim n-1 个正整数 ti (0<ti<70)t_i\ (0<t_i<70) 表示两站之间列车的通过时间。
  • 44 行一个整数 M1 (1M150)M_1\ (1 \le M_1 \le 50) 表示离开第一个车站的火车的数量。
  • 55M1M_1 个正整数 d1,d2,,dn (0d250d_1,d_2,\cdots,d_n\ (0 \le d \le 250di<di+1)d_i<d_i+1) 表示每一列火车离开第一站的时间。
  • 66 行一个正整数 M2 (1M250)M_2\ (1 \le M_2 \le 50) 表示离开第 NN 站的火车的数量。
  • 77M2M_2 个正整数:e1,e2eM2 (0e250e_1,e_2\cdots e_{M_2}\ (0 \le e \le 250ei<ei+1)e_i<e_i+1) 表示每一列火车离开第 NN 站的时间。

最后一行有一个整数 00

输出格式

对于每组数据,打印一行 Case Number N:\text{\texttt{Case Number }\textit{N}\texttt{:}}NN11开始)和一个整数表示总等待的最短时间或者一个单词 impossible\verb!impossible! 如果玛丽亚不可能做到。

可参考样例输出。

4
55
5 10 15
4
0 5 10 20
4
0 5 10 15
4
18
1 2 3
5
0 3 6 10 12
6
0 3 5 7 12 15
2
30
20
1
20
7
1 3 5 7 11 13 17
0

Case Number 1: 5
Case Number 2: 0
Case Number 3: impossible

提示

样例 1 解释

00 分钟时上车,在 33 号站下车,立刻坐上(00 分始发)1515 分开的车回去,到 22 号车站,立刻坐上(2020 分始发)2525 开的车到终点,5050 分到,还需要等待 55 分钟。