zgx玩CS
测试数据来自 system/1515
背景
在一个微型迷你地图里,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