#P2. 【幽灵】幽灵感染
【幽灵】幽灵感染
题目描述
最近,幽灵们学会了一项技能:幽灵感染。
一只幽灵对一个人幽灵感染可以把人变成幽灵。
给定四个正整数:。
其中, 和 表示一个矩阵的大小,即有一个 的矩阵。
这个矩阵的横坐标是从 到 ,纵坐标是从 到 。
而 表示一个 坐标,表示矩阵中这个坐标上有一个幽灵,即 是幽灵。
一开始,除了 是幽灵,矩阵中的其它坐标都是人。
在 上的幽灵可以进行幽灵感染。
提前声明:幽灵感染幽灵是无效的,且幽灵感染的人的位置不能超出矩阵边界。
在每一次操作中,幽灵可以感染它左边和它上面的人,也就是说,在每一次操作,幽灵至多感染 个人。
现在再给定 个正整数: 和 个长度为 的序列:。
你要求的问题是:幽灵至少要进行几次感染,才能满足所有 使得矩阵上坐标为 上的点是幽灵。
如果不能,输出Impossible
。
输入格式
输入共 行。
第一行,输入 个正整数:。
第二行,输入 个正整数,表示序列 的每个数,。
第三行,输入 个正整数,表示序列 的每个数,。
输出格式
输出共 行。
Impossible
或一个正整数,这个正整数表示幽灵至少要进行几次感染,才能满足所有 使得矩阵上坐标为 上的点是幽灵。
样例
3 2 2 2 1
1
1
2
样例解释
我们可以画出一个 的矩阵,其中,位置 的是幽灵(幽灵用*表示)。
位置 的幽灵进行幽灵感染,感染上方的人。
位置的幽灵进行幽灵感染,感染左方的人,因上方超出矩阵边界,所以只能感染左方的人。
这时,满足了要求的点变成幽灵,共计感染 次,故输出 。
数据范围
。
。