在一个奇幻的《星际争霸》地图中,你需要操控一名机枪兵(marine)去击败两只跳虫(zergling)。由于你不确定这项任务是否可行,你需要编写程序进行模拟。
地图由 $5 \times 5$ 的网格组成,每个网格要么是可通过的,要么是不可通过的。机枪兵和跳虫始终位于可通过的网格中。两只跳虫可以位于同一个网格中,但机枪兵在任何时候都不能与任何存活的跳虫处于同一个网格。初始时,机枪兵的生命值(HP)为 $m$,两只跳虫的生命值均为 $z$。
游戏按回合进行。每一回合包含三个阶段:
- 机枪兵可以向水平或垂直方向移动一个网格,或者原地不动以射击其中一只跳虫。由于地图较小,机枪兵可以射击地图上任何位置的任何一只跳虫。每回合的射击会使目标跳虫的生命值减少 1。如果跳虫的生命值小于或等于 0,它就会死亡。
- 所有存活的跳虫同时移动。如果一只跳虫位于机枪兵的相邻网格,它会攻击机枪兵;否则,它会沿着到机枪兵的最短路径移动一个网格。如果存在多条最短路径,它将按照左、上、右、下的优先级进行选择(例如,如果向左和向上都在最短路径上,它会选择向左)。如果两只跳虫都在同一个网格并攻击机枪兵,机枪兵的生命值将减少 1;否则,每只跳虫都会攻击机枪兵并使机枪兵的生命值减少 1。如果机枪兵的生命值小于或等于 0,他就会死亡。
- 系统检查机枪兵和跳虫的状态。如果两只跳虫都死亡,你获胜。如果机枪兵死亡,你失败。此外,如果你不能在 34 个回合内赢得游戏,你也会失败。
你需要判断是否能赢得游戏。如果可以,输出赢得游戏所需的最少回合数。
输入格式
输入文件可能包含多个测试用例,请处理到文件结束。每个测试用例的前五行表示地图。每行包含五个字符。字符含义如下:
1:不可通过的网格;M:机枪兵;Z:一只跳虫;z:另一只跳虫;- 其他字符:可通过的网格。
第六行包含两个整数 $m, z$ ($0 < m \le 16, 0 < z \le 99$),含义如上所述。
输出格式
对于每个测试用例,如果能获胜,第一行输出 WIN,第二行输出最少回合数;否则输出 LOSE。
样例
输入 1
zZ000 11110 00M10 01110 00000 15 15
输出 1
WIN 30
说明
在上述样例中,最佳策略是机枪兵原地不动,先射击跳虫 Z,然后再射击跳虫 z。跳虫 Z 在第 14 回合后移动到机枪兵的相邻网格,但在第 15 回合被击杀。跳虫 z 在第 15 回合后移动到机枪兵的相邻网格。随后,在接下来的 15 个回合中,跳虫 z 和机枪兵互相攻击。在第 30 回合,由于机枪兵先手,他击杀了跳虫 z 并剩余 1 点生命值。