题述
输入输出
样例
代码
//#include<stdio.h>
//#include<iostream>
//#include<cstdlib>
//#include<string.h>
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int n,w;scanf("%lld %lld",&n,&w);long long int sum=0;int max=-1;int min=1000000001;int a[1010];for(int i=1;i<=n;i++){
scanf("%d",&a[i]);sum+=a[i];if(sum<min)min=sum;//记录下树的猴的数量的最大值if(sum>max)max=sum;//记录上树的猴的数量的最小值}//m1记录原本最多有多少只猴,m2记录原本最少有多少只猴if(max<0) max=0;//max<0,说明相当于没有猴上树long long int m1=w-max;if(m1>=0);//后来上去了m1个else //max>w显然无解{
printf("0");return 0;}int m2=min;if(m2>w||-m2>w) //m2的绝对值大于w,无解{
printf("0");return 0;}else if(m2<=0)m2=-m2;//下去了m2个猴else //m2>0相当于没下去猴{
m2=0;}if(m1-m2+1>0){
cout<<m1-m2+1;}else{
printf("0");}return 0;
}