本文主要是介绍三国游戏.,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述
小蓝正在玩一款游戏。游戏中魏(X)、蜀(Y)、吴()三个国家各自拥有一定数量的士兵X,Y, (一开始可以认为都为 0)。游戏有n个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第个事件发生时会分别让X,Y,乙 增加Ai,Bi,Ci。
当游戏结束时(所有事件的发生与否已经确定),如果X,Y,的其中一个大于另外两个之和,我们认为其获胜例如,当X>Y+时,我们认为魏国获胜。小蓝想知道游戏结束时如果有其中一个国家获胜,最多发生了多少个事件?如果不存在任何能让某国获胜的情况,请输出-1。
输入格式
输入的第一行包含一个整数n。
第二行包含n个整数表示A,相邻整数之间使用一个空格分隔。
第三行包含n个整数表示B;,相邻整数之间使用一个空格分隔。
第四行包含n个整数表示C,相邻整数之间使用一个空格分隔。
输出格式
输出一行包含一个整数表示答案
import os
import sys# 请在此输入您的代码
n=int(input())
a=list(map(int,input().split()))
b=list(map(int,input().split()))
c=list(map(int,input().split()))def findwin(x,y,z): #假设x赢win=[] #每件事发生后x多出来的士兵for i in range(n):win.append(x[i]-y[i]-z[i])# 降序排序win = sorted(win, reverse=True)sum=0for i in range(n): sum+=win[i]if sum<=0: #x多出来的士兵数目相加小于0表示X<Y+Z,此时的i就是x(魏国)能获胜的最大值return ireturn 0ans=max(findwin(a,b,c),findwin(b,c,a),findwin(c,a,b))
if ans!=0:print(ans)
else:print(-1)
这篇关于三国游戏.的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!