题意:
警察抓小偷,一共n 个人,-1表示小偷,整数表示警察的数量,一个警察只能抓他旁边的小偷,问没有抓住的小偷的数量。
输入:
3 -1 -1 1
8 1 -1 1 -1 -1 1 1 1
11 -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1
输出:
2
1
8
分析:
直接遍历,将所有的整数加和sum,遇到-1时判断,如果sum=0,就加一次,如果sum>0就sum -1.
代码:
#include <bits/stdc++.h>
using namespace std;
const int maxn=100000+10;
int a[maxn];
int main()
{
int n,sum=0,num=0;
cin >>n;
for(int i=0; i<n; i++)
{
cin >>a[i];
if(a[i]==-1)
{
if(sum==0)
++num;
else
--sum;
}
else
sum+=a[i];
}
cout <<num<<endl;
return 0;
}