警察招聘


Submit solution

Points: 10
Time limit: 1.0s
Memory limit: 4M

Author:
Problem type
Allowed languages
C++

警察招聘

城市的警察部门刚刚开始运营,最初没有任何警力。因此,他们开始分批招聘新警察。
与此同时,城市中犯罪不断发生。假设一个警察只能处理一个案件,也就是说测试用例里面的一个警察只能处理一个犯罪。
如果在犯罪发生时,没有警察空闲(没有忙于调查其他案件),该犯罪将无法处理,即使后面又招聘了新的警察,后来招聘的新警察也不会处理前面积累的案件。
给定犯罪发生和警察招聘的时间顺序,计算无法处理的犯罪数量。

输入1

第一行输入一个整数 \(n\) (\(1 \le n \le 10^5\)),表示事件的数量。
第二行输入 \(n\) 个空格分隔的整数。
如果整数是 -1,则表示发生了犯罪。
如果整数是正数,则表示在该时间点招聘了若干名警察,招聘的警察数量是该正数的值。每次招聘的警察数量不超过10名。

输出

输出一个整数,表示未能处理的犯罪数量。

输入1
3
-1 -1 1
输出1
2
输入2
8
1 -1 1 -1 -1 1 1 1
输出2
1
输入3
11
-1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1
输出3
8
解析
示例 1:

第一时间点发生犯罪,当前没有警察,未能处理此犯罪。
第二时间点发生犯罪,仍然没有警察,未能处理此犯罪。
第三时间点招聘了1名警察,但之前的两起犯罪未被处理,最终有2起犯罪未处理。

示例 2:

第1步,招聘1名警察。
第2步,发生犯罪,招聘的警察处理了此犯罪。
第3步,招聘1名警察。
第4步,发生犯罪,招聘的警察处理了此犯罪。
第5步,发生犯罪,当前没有空闲的警察,无法处理此犯罪。
第6、7、8步,分别招聘了3名警察,处理了之前未处理的犯罪。
最终,只发生了1起未处理的犯罪。

示例 3:

逐步处理,招聘了若干警察,但有8起犯罪未能处理。


Comments

There are no comments at the moment.