#HX2877. 栈专题课堂题三:餐盘清洗3

提交2 通过1
通过率50%
时间限制1000ms
内存限制128MiB
    ID: 12838 传统题 1000ms 128MiB 尝试: 2 已通过: 1 难度: 普及- 上传者: 标签>C++c++编程题浩轩OJ迁移6级2025年寒假六级班题库

题目描述

题目描述

小珅同学顺利从清洗餐盘的工作过渡到了给餐盘消毒的工作!

开始时,没有待消毒餐盘,之后会发生两种事件:

  1. 一个新的待消毒餐盘加入:用一个正整数 a 表示,代表将一个餐盘放在餐盘顶端,且这个餐盘消毒完成需要的“消毒时间”是 a;

  2. 餐盘消毒:用一个负整数 b 表示,代表小珅同学进行 |b| 分钟消毒。小珅同学取出顶端餐盘,对它持续消毒,直到达到这个餐盘需要的“消毒时间”,然后再去拿下一个餐盘。如果没有餐盘了,就进入下一个事件。

因为只能消毒 |b| 分钟,最后一个餐盘可能无法消毒足够的时间,那么这个餐盘要放回顶端,它所需的“消毒时间”要减去已经消毒的时间。

两种事件一共发生了 n 次,请输出每次消毒完成的餐盘数量。

输入格式

第 1 行,一个正整数 n,为事件发生的次数;

第 2 行,n 个整数 x₁,x₂,…,xₙ。若 xᵢ>0,表示一个需要消毒 xᵢ 分钟的餐盘放在餐盘顶端;若 xᵢ<0,表示对餐盘顶端持续消毒 |xᵢ| 分钟。

输出格式

对每次消毒,输出 1 行,每行包含一个整数,表示每次消毒完成的餐盘数量。

输入样例 #1

8
7 2 1 -6 5 -4 1 -8

输出样例 #1

2
0
3

输入样例 #2

2
1 -1

输出样例 #2

1

输入样例 #3

3
5 -2 -10

输出样例 #3

0
1

数据范围与约定

1≤n≤1000

|xᵢ|≤10^4