原题
官网放图真受不了,案例一个一个敲的
测试样例
""" 5 4 10 0 9 0 4 10 -2 7 0 2 10 0 4 10 -3 5 0 4 10 -1 8 0 4 4 74 -7 -12 -5 5 73 -8 -6 59 -4 5 76 -5 -10 60 -2 5 80 -6 -15 59 0 """
思路
比如输入5 73 -8 -6 59 -4这段数据,
用temp保存,剔除第一个(python的len函数替代),成为73 -8 -6 59 -4,然后选定第一个73,往后遇到非正数,就加,73-8-6=59,遇到正数59,就替换成59,如果替换前的数值大于替换后,给temp后面加一个标记"False",表示有掉落,D+1,
同时每个temp算出来的sum加到T中
最后再统计False出现的相邻情况即可
源代码
# create by 15574946385 at 2019/10/4
# content:
n=int(input())
tree=[]
T,D,E=0,0,0
for i in range(n):
temp=list(map(int,input().split()))
temp=temp[1:]
tempSum=temp[0]
if len(temp)>1:
for i in range(1,len(temp)):
if temp[i]<=0:
tempSum+=temp[i]
elif tempSum>temp[i]:
if temp[-1]!="False":
temp.append("False")
D+=1
tempSum=temp[i]
T+=tempSum
tree.append(temp)
for i in range(len(tree)):
pre=i-1
if pre<0:
pre+=len(tree)
next=i+1
if next>len(tree)-1:
next-=len(tree)
if tree[pre][-1]==tree[i][-1]==tree[next][-1]=="False":
E+=1
print(T,D,E)