三国游戏.


问题描述
小蓝正在玩一款游戏。游戏中魏(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=0
  for i in range(n): 
    sum+=win[i]
    if sum<=0:  #x多出来的士兵数目相加小于0表示X<Y+Z,此时的i就是x(魏国)能获胜的最大值
      return i
  
  return 0

ans=max(findwin(a,b,c),findwin(b,c,a),findwin(c,a,b))
if ans!=0:
  print(ans)
else:
  print(-1)

相关推荐

  1. 游戏.

    2024-03-19 23:22:03       19 阅读
  2. AcWing:4965. 游戏

    2024-03-19 23:22:03       39 阅读
  3. 题目 3158: 游戏

    2024-03-19 23:22:03       13 阅读
  4. 蓝桥杯---游戏

    2024-03-19 23:22:03       34 阅读
  5. 蓝桥集训之游戏

    2024-03-19 23:22:03       41 阅读
  6. 游戏(第十四届蓝桥杯)

    2024-03-19 23:22:03       30 阅读
  7. 第十四届蓝桥杯 游戏

    2024-03-19 23:22:03       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-19 23:22:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-19 23:22:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-19 23:22:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-19 23:22:03       18 阅读

热门阅读

  1. 全屏时框架的message alert 下拉框失效问题

    2024-03-19 23:22:03       17 阅读
  2. Linux 常用运维使用指令

    2024-03-19 23:22:03       20 阅读
  3. pytorch升级打怪(五)

    2024-03-19 23:22:03       18 阅读
  4. C++学习之旅(一)- 序言

    2024-03-19 23:22:03       18 阅读
  5. android 网络检测简单方法

    2024-03-19 23:22:03       19 阅读
  6. 【C语言】数组基础

    2024-03-19 23:22:03       19 阅读
  7. Linux作业

    2024-03-19 23:22:03       16 阅读
  8. 网页的制作

    2024-03-19 23:22:03       16 阅读