AcWing 4965. 三国游戏PythonA组
原题链接
简单
作者:
Kuro.
,
2023-12-13 21:28:49
,
所有人可见
,
阅读 98
'''
目的:想让游戏以尽量多的事件结束
人数差:设对于第i个事件后魏国的人数差为 Ai-Bi-Ci
对每一个国进行从人数差从大到小遍历,确保这个国家肯定要获胜:
如果在人数差从大到小进行遍历时如遇见累计的人数差小于等于零时后续的步骤中这个国家无法再获胜
#从大到小的排序中,如果前i项和小于等于0时第i项以及之后的项肯定小于0,否则和不可能会出现负数的
只能从人数差小于等于0时的前一步结束游戏而不进行其他的步骤
对每一个国进行人数差的遍历,然后取累计发生事件的个数的最大值
'''
n=int(input())
x=list(map(int,input().split()))
y=list(map(int,input().split()))
z=list(map(int,input().split()))
lx=[x[i]-y[i]-z[i] for i in range(n)]
lx.sort()
lx.reverse()
res=-1
cnt=0
tmp=0
for i in range(n):
tmp+=lx[i]
if tmp<=0:
break
cnt+=1
if cnt:
res=max(res,cnt)
lx=[y[i]-x[i]-z[i] for i in range(n)]
lx.sort()
lx.reverse()
cnt=0
tmp=0
for i in range(n):
tmp+=lx[i]
if tmp<=0:
break
cnt+=1
if cnt:
res=max(res,cnt)
lx=[z[i]-y[i]-x[i] for i in range(n)]
lx.sort()
lx.reverse()
cnt=0
tmp=0
for i in range(n):
tmp+=lx[i]
if tmp<=0:
break
cnt+=1
if cnt:
res=max(res,cnt)
print(res)