/ Vijos / 题库 /

zgx玩CS

zgx玩CS

背景

在一个微型迷你地图里,CS高手zgx想用一个拿AK的T(匪徒)来打败两个拿匕首的CT(警察,专家级的的^_^)。由于你认为这是不可能完成的任务,你打算编程来验证。

描述

为了方便你处理,你抽象出了这样一个模型:

地图是一个n*n的方格阵,每个方格可能是“深渊”和“平地”,CT和T总是占据其中的一个平地。两个CT可以处于同一平地上,但是T和CT不可以处于同一平地上(可想而知)。T的生命值为t,CT的生命值为c。

游戏可以抽象为回合制,在每一个回合里,T先行动。T可以往竖直或水平走一格,或站在原地朝某只CT开枪(必中,无论那个CT在哪个角落,)。T每一枪可以让一个CT减少1点生命值,若某一CT的生命值降到0点或以下时,就挂了。

T行动完毕后所有的还没挂掉的CT会同时行动。若某个CT与T相邻,就会攻击T,否则他就会往到达T的当前位置的最短路走(竖直或水平)一格,如果有多条最短路,CT就会按左上右下的顺序依次尝试行动(若左和上都是最短路,就往左走)。如果两只CT在同一格攻击T,T的生命值只会减少1,否则每只CT的攻击都会使T的生命值减少1。

当某个回合结束时,CT全部死亡游戏胜利;T死亡算失败。若n*n+17个回合仍未分出胜负,那么也算失败。

你需要判定游戏是否可能胜利,如果可能则请需要的最少的回合数。

^_^

格式

输入格式

前n行有n个字符,表示地图每个方格的情况。

“1”表示深渊,“0”表平地。“T”表示T的初始位置,“C”和“c”表示两头CT的初始位置。

第六行包括两个整数t和c。

n=5,1<=t<=16,1<=c<=99

输出格式

若胜利,第一行“WIN”,第二行输出 2^(500-最少需要的回合数);
若失败,很简单,输出一行“LOSE”。

样例1

样例输入1

cC010
11110
00T10
01110
00000
1 90

样例输出1

LOSE

限制

各个测试点1s。

记住是1s!

提示

玩好CS先^_^

来源

福州时代中学zgx

信息

ID
1515
难度
8
分类
搜索 | 图结构 | 最短路动态规划 点击显示
标签
递交数
161
已通过
22
通过率
14%
被复制
4
上传者

相关

在下列训练计划中:

RP++分类题库