题目链接:http://codeforces.com/problemset/problem/978/E
题意
一辆公交车,在每站会上一些人或下一些人,车的最大容量为w,问初始车上可能有的乘客的情况数。
思路
找到公交车在路上的最大乘客数和最小乘客数,然后计算最大容量减去最大乘客数,加上最小乘客数的值。如果该值小于0,输出0
AC代码
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <math.h>
#include <limits.h>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#include <set>
#include <string>
#define ll long long
#define ms(a) memset(a,0,sizeof(a))
#define pi acos(-1.0)
#define INF 0x3f3f3f3f
const double E=exp(1);
const int maxn=1e6+10;
using namespace std;
int sum[maxn];
int main(int argc, char const *argv[])
{
ios::sync_with_stdio(false);
int n,m;
cin>>n>>m;
int _=0;
int __=0;
int x;
for(int i=1;i<=n;i++)
{
cin>>x;
sum[i]=sum[i-1]+x;
_=min(_,sum[i]);
__=max(__,sum[i]);
}
cout<<max(0,m-__+_+1)<<endl;
return 0;
}