当前位置: 代码迷 >> 综合 >> acwing 3992 树上有猴
  详细解决方案

acwing 3992 树上有猴

热度:88   发布时间:2023-12-02 04:20:05.0

题述

在这里插入图片描述

输入输出

在这里插入图片描述

样例

在这里插入图片描述

代码

//#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;
}