【问题描述】
我们都听说过狗熊掰棒子的故事。现在有一只狗熊拿着可以装个玉米的口袋去掰棒子。如果新掰到的玉米比口袋中最上面的玉米重,则用新掰到的玉米去替换口袋中最上面的玉米;否则,只要口袋未满,则将新掰到的玉米装入。求最终袋中玉米总重量。
【输入形式】
第一行输入口袋可以装载的玉米数目;之后m行输入m个正整数,表示待的玉米重量值,m=0表示结束。
【输出形式】
一行一个整数,表示最终袋中玉米总重量。
【样例输入】
3
6
4
10
3
6
4
7
2
0
【样例输出】
23
****【样例说明】****袋子深度为3,第一个6装入;第二个4比6小,袋子未满故装入;输入10替换掉4;输入3袋子未满装入;输入6替换掉3;输入4袋子已满不装;输入7替换掉6;输入2袋子已满不装;最
后袋子中的玉米为6、10、7,总重量为23
【代码尝试】
n = eval(input()) # 袋子容量
weight = 0
number = 0 # 记录袋子已装玉米数量
m = 0 # 输入的正整数
flag = 0
while 1:
tmp = m
m = eval(input())
if m == 0:
break
# 若袋子还未装满
if number < n:
if m <= tmp:
weight = weight + m
number += 1
else:
weight = weight - tmp + m
if number == 0:
number += 1
# 若袋子已经装满,tmp_top---最上面的玉米
else:
if flag == 0:
tmp_top = tmp
flag += 1
if m > tmp_top:
weight = weight - tmp_top + m
tmp_top = m
print(weight)