PTA 7-4 胖达与盆盆奶 (20 分)

简介: 俗称“胖达”,会排队吃盆盆奶。它们能和谐吃奶的前提,是它们认为盆盆奶的分配是“公平”的,即:更胖的胖达能吃到更多的奶,等胖的胖达得吃到一样多的奶。

网络异常,图片无法展示
|


大熊猫,俗称“胖达”,会排队吃盆盆奶。它们能和谐吃奶的前提,是它们认为盆盆奶的分配是“公平”的,即:更胖的胖达能吃到更多的奶,等胖的胖达得吃到一样多的奶。另一方面,因为它们是排好队的,所以每只胖达只能看到身边胖达的奶有多少,如果觉得不公平就会抢旁边小伙伴的奶吃。


已知一只胖达每次最少要吃 200 毫升的奶,当另一份盆盆奶多出至少 100 毫升的时候,它们才能感觉到是“更多”了,否则没感觉。


现在给定一排胖达的体重,请你帮饲养员计算一下,在保持给定队形的前提下,至少应该准备多少毫升的盆盆奶?


输入格式:


输入首先在第一行给出正整数 n(≤104),为胖达的个数。随后一行给出 n 个正整数,表示 n 只胖达的体重(公斤)。每个数值是不超过 200 的正整数,数字间以空格分隔。


输出格式:


在一行中输出至少应该准备多少毫升的盆盆奶。


输入样例:


10
180 160 100 150 145 142 138 138 138 140


输出样例:


3000


样例解释:


盆盆奶的分配量顺序为:


400 300 200 500 400 300 200 200 200 300


解题思路


N = int(input())
inputList = list(map(int, input().split()))
# N = int("10")
# inputList = list(map(int, "180 160 100 150 145 142 138 138 138 140".split()))
length = len(inputList)
resList1 = [0]*len(inputList)
for index in range(0,len(inputList)):
    # print(index)
    last = inputList[index-1] if index !=0 else 200
    val = inputList[index]
    lastQuanzhong = resList1[index-1] if index !=0 else 0
    if val == last:
        resList1[index] = lastQuanzhong
    elif val > last:
        resList1[index] = lastQuanzhong+1
    elif val < last:
        resList1[index] = 0
# print(resList1)
resList2 = [0]*len(inputList)
for index in range(len(inputList)-1,-1,-1):
    # print(index)
    last = inputList[index+1] if index !=len(inputList)-1 else 200
    val = inputList[index]
    lastQuanzhong = resList2[index+1] if index !=len(inputList)-1 else 0
    if val == last:
        resList2[index] = lastQuanzhong
    elif val > last:
        resList2[index] = lastQuanzhong+1
    elif val < last:
        resList2[index] = 0
# print(resList2)
resList = []
for i in range(length):
    res = 200 + max(resList1[i],resList2[i])*100
    resList.append(res)
print(sum(resList))


目录
相关文章
【PTA】7-8 到底有多二 (15分)
【PTA】7-8 到底有多二 (15分)
2165 0
|
1天前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
PTA 7-1 多二了一点 (15 分)
若一个正整数有 2n 个数位,后 n 个数位组成的数恰好比前 n 个数位组成的数多 2,则称这个数字“多二了一点”。
82 0
|
测试技术
PTA 1011 A+B 和 C (15 分)
给定区间 [−2 31 ,2 31 ] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。
89 0
|
C语言
PTA 1026 程序运行时间 (15 分)
要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。
92 0
PTA 1016 部分A+B (15 分)
正整数 A 的“D A ​ (为 1 位整数)部分”定义为由 A 中所有 D A ​ 组成的新整数 P A ​
72 0
PTA 1088 三人行 (20 分)
子曰:“三人行,必有我师焉。择其善者而从之,其不善者而改之。”
66 0
PTA 1046 划拳 (15 分)
划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。
75 0
|
测试技术
PTA 1039 到底买不买 (20 分)
小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。
89 0
PTA 7-4 最近的斐波那契数 (20 分)
斐波那契数列 F n ​ 的定义为:对 n≥0 有 F n+2 ​ =F n+1 ​ +F n ​ ,初始值为 F 0 ​ =0 和 F 1 ​ =1。
67 0

热门文章

最新文章