精灵宝可梦对战
题目描述:
小 A 和小 B 是两个宝可梦的忠实粉丝,同时他们也在共同玩一款宝可梦对战游戏,这个游戏的规则是这样的:小 A 有 \(n\) 个宝可梦,小B有 \(m\) 个宝可梦,每个宝可梦都会有一个血量值 \(H_i\) ,物理攻击值 \(A_i\) ,和魔法攻击值 \(B_i\) ,以及对应的物理防御值 \(C_i\) ,魔法防御值 \(D_i\) ,除此之外他们还有一个终极技能,释放技能可以造成 \(W_i\) 点真实伤害,但终极技能的释放需要 \(E_i\) 点能量,初始宝可梦的能量为 0 ,每次释放物理攻击或者魔法攻击时会获得一点能量,要注意的是一个角色能积累的能量是没有上限的,同时释放终极技能不能获得能量。
在他们所在的世界里,宝可梦的伤害机制如下:
如果我方发动攻击的宝可梦物理攻击值为 \(A\) ,魔法攻击为 \(B\) ,终极技能可以造成 \(W\) 点真实伤害,释放需要 \(E\) 点能量,对方承受攻击的宝可梦物理防御值为 \(C\) ,魔法防御值为 \(D\) 。那么如果我方发动物理攻击,会造成 \(\text{max}(0,A-C)\) 的伤害,如果我方发动魔法攻击,会造成 \(\text{max}(0,B-D)\) 的伤害,如果我方发动终极技能,那么会造成 \(W\) 点真实伤害并消耗\(E\)点能量。
这天他们两个想比试比试看看谁的宝可梦更加厉害,他们来到一处竞技场内,根据以下规则展开了决斗:
+ 小 A 的宝可梦先发动攻击。
+ 每一个时刻对于每一个人而言只有一只宝可梦在场,只有在场上的宝可梦会发动攻击或者受到对方攻击。
+ 默认开始比试时双方的第一只宝可梦在场。
+ 双方轮流发动攻击,发动攻击的一方使用其在场的宝可梦在物理攻击,魔法攻击和终极技能三者里选择对对方在场宝可梦造成伤害最高的技能发动。发动完攻击后离场,排在存活宝可梦队伍的最后一位,并替换队伍内存活的下一只宝可梦上场。
+ 如果伤害最多的技能有多个,那么他们会优先选择物理攻击或者魔法攻击而不是终极技能。
+ 如果一次攻击使得对方宝可梦的 HP 小于等于0,那么对方该宝可梦被迫离场,并替换队伍内下一只存活的宝可梦商场。
+ 当某一方所有宝可梦都阵亡,则算该方输掉该场对局。
+ 双方都是有武德的人,当他们进行了 K 轮比试之后,如果他们还没有分出胜负,他们就会握手言和然后回家吃饭。(小 A 攻击一次,然后小 B 攻击一次记为一轮比试)
小 C 作为旁观者,他告诉你每个人的宝可梦信息和他的队伍顺序,想问一下你最后的比试结果。(如果小 A 最终胜利则输出 Alice ,小B胜利则输出 Bob ,若平局则输出 Draw 。)
输入格式:
第一行有三个整数 \(n,m,K\) ,表示小A的宝可梦数量 \(n\) ,小B的宝可梦数量 \(m\) ,他们约定平局的局数 \(K\) 。
接下来 \(n\) 行描述小 A 的宝可梦的属性,每一行有7个整数,\(H_i,A_i,B_i,C_i,D_i,E_i,W_i\),分别代表第 \(i\) 只宝可梦的血量 \(H_i\) ,物理攻击值 \(A_i\) ,魔法攻击值 \(B_i\) ,物理防御值 \(C_i\) ,魔法防御值 \(D_i\) ,释放终极技能需要的能量 \(E_i\) ,终极技能能造成的伤害\(W_i\)。
接下来 \(m\) 行描述小 B 的宝可梦的属性,每一行有7个整数,\(H_i,A_i,B_i,C_i,D_i,E_i,W_i\),分别代表第 \(i\) 只宝可梦的血量 \(H_i\) ,物理攻击值 \(A_i\) ,魔法攻击值 \(B_i\) ,物理防御值 \(C_i\) ,魔法防御值 \(D_i\) ,释放终极技能需要的能量 \(E_i\) ,终极技能能造成的伤害 \(W_i\) 。
输入参数的具体约束如下:
\(1 \le n,m \le 10^5,1\le K \le 10^6\)
\(1 \le H_i,A_i,B_i,C_i,D_i,E_i,W_i \le 10^8\)
输出格式:
一行字符串表示结果,如果小 A 赢则输出 "Alice",小 B 赢则输出 "Bob",平局则输出 "Draw"。
数据范围:
- 对于 \(20\%\) 的数据有:\(1\le n,m \le 10, K\le 100\)。
- 对于 \(40\%\) 的数据有:\(1\le n,m \le 100 , K \le 10^6\)。
- 对于 \(60\%\) 的数据有:\(1\le n,m,K \le 5000\)。
- 对于 \(80\%\) 的数据有:\(1\le n,m,K\le 10^5\)。
- 对于 \(100\%\) 的数据有:\(1\le n,m\le 10^5,1\le K\le 10^6\)。
样例输入:
样例1: 2 2 100 5 10 4 4 5 2 13 12 8 8 3 1 3 5 17 4 6 3 2 1 2 1 10 9 1 5 5 6 样例2: 2 3 5 3 9 9 5 5 2 1 10 6 8 2 4 2 14 18 1 4 1 2 4 15 7 5 4 3 4 1 12 10 8 2 3 1 5 15
样例输出:
样例1: Alice 样例2: Draw时间限制: 1000ms
空间限制: 512MB