欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > 荒岛逃生游戏

荒岛逃生游戏

2024/10/23 7:07:14 来源:https://blog.csdn.net/TTz012/article/details/143077015  浏览:    关键词:荒岛逃生游戏

题目描述
一个荒岛上有若干人,岛上只有一条路通往岛屿两端的港口,大家需要逃往两端的港口才可逃生。

假定每个人移动的速度一样,且只可选择向左或向右逃生。

若两个人相遇,则进行决斗,战斗力强的能够活下来,并损失掉与对方相同的战斗力;若战斗力相同,则两人同归于尽。

输入描述
给定一行非 0 整数数组,元素个数不超过30000;

正负表示逃生方向(正表示向右逃生,负表示向左逃生),绝对值表示战斗力,越左边的数字表示里左边港口越近,逃生方向相同的人永远不会发生决斗。

输出描述
能够逃生的人总数,没有人逃生输出0,输入异常时输出-1。

用例1
输入
5 10 8 -8 -5
输出
2
说明
第3个人和第4个人同归于尽,第2个人杀死第5个人并剩余5战斗力,第1个人没有遇到敌人。

nums = list(map(int,input().split()))
#本质上是一个栈的问题
def getresult():negative = 0 #从左边出来的负数的个数intnums = []for num in nums:if num==0:return -1if num>0:intnums.append(num)else:while True:if len(intnums)==0:negative+=1breakdif = num+intnums.pop()if dif>0:intnums.append(dif)breakelif dif<0:num=difelse:breakreturn negative+len(intnums)
print(getresult())

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com