个人信息
蓝桥杯笔记:蓝桥杯备赛笔记
知乎:蓝桥杯python组备赛指南
CSDN主页:蓝桥杯python组备赛指南
思路
+1
的操作等价于-1
,例如:1 2 3 4 ➡️1 2 2 1 or 1 2 3 4 ➡️4 3 3 4- 那么我们只选择一种操作,
-1
- 从两边分别统计
差值
,比如对于样例,0 0 1 2 - 遍历,进行
-1
操作,对于连续的两个位置-1
,当做一次操作,最终结果为0 0 0 1 - 遍历最终位置为倒数第二个元素,此时如果倒数第一个元素不为0,单独进行
-1
操作
python代码
import os
import sys
n=int(input())
data=list(map(int,input().split()))
a=[0]*(n)
ans=0
l,r=0,n-1
while l<=n//2 and r>=n//2:
t=min(data[l],data[r])
data[l]-=t
if l!=r:
data[r]-=t
l+=1
r-=1
for i in range(n-1):
t=data[i]
if t>0:
ans+=t
data[i+1]-=min(t,data[i+1])
if data[n-1]>0:
ans+=data[n-1]
print(ans)