题意:给定 n 个数,有正数和-1, -1表示罪犯,正数表示招了几个警察,一个警察只能看一个罪犯,并且要按顺序,问你有多少罪犯逃脱。

析:很简单么,从开始扫到最后,把是正数就加上,是-1判断剩余警察大于0,如果是就让警察数减1,如果不是答案加1.

代码如下:

 #include <bits/stdc++.h>

using namespace std;
typedef long long LL;
const int maxn = 1e5 + 5;
const int INF = 0x3f3f3f3f;
int a[maxn];

int main(){
    int n;
    while(cin >> n){
        for(int i = 0; i < n; ++i)  scanf("%d", &a[i]);
        int ans = 0;
        int of = 0;
        for(int i = 0; i < n; ++i){
            if(a[i] == -1){
                if(of)  --of;
                else  ++ans;
            }
            else  of += a[i];
        }
        cout << ans << endl;
    }
    return 0;
}

 

相关文章:

  • 2021-05-15
  • 2021-10-26
  • 2021-11-30
  • 2021-06-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-29
  • 2022-12-23
  • 2022-02-21
  • 2021-09-25
  • 2022-12-23
  • 2022-12-23
  • 2021-12-20
相关资源
相似解决方案