题目描述:
《Doki Doki Literature Club》是一款轻松治愈的视觉小说,里面有四位风格不同的少女可供攻略,青梅竹马Sayori、傲娇萝莉Natsuki、内向御姐Yuri和校园偶像Monika。为了攻略其中的一位,你进行了n次操作,而每次操作都会带来对应的好感度变化,好感度可能增加也可能降低。游戏会给你要攻略的对象一个初始好感度x,x>=0,同时也限定了攻略对象的最高好感度w,好感度超过w或者小于0被攻略对象就会崩坏。那么请你求出在n次操作后,攻略对象一直不崩坏的情况下,初始好感度x可能为多少,输出x可能有几种情况。
输入:
第一行输入两个数字,n和w(1≤n≤1000,1≤w≤1e9),中间空格隔开; 第二行输入n个数字,a1,a2,…,an(?1e6≤ai≤1e6),即每次操作后好感度变化。
输出:
初始好感度x可能的情况的数量。
样例输入
3 5
2 1 -3
样例输出
《Doki Doki Literature Club》是一款轻松治愈的视觉小说,里面有四位风格不同的少女可供攻略,青梅竹马Sayori、傲娇萝莉Natsuki、内向御姐Yuri和校园偶像Monika。为了攻略其中的一位,你进行了n次操作,而每次操作都会带来对应的好感度变化,好感度可能增加也可能降低。游戏会给你要攻略的对象一个初始好感度x,x>=0,同时也限定了攻略对象的最高好感度w,好感度超过w或者小于0被攻略对象就会崩坏。那么请你求出在n次操作后,攻略对象一直不崩坏的情况下,初始好感度x可能为多少,输出x可能有几种情况。
输入:
第一行输入两个数字,n和w(1≤n≤1000,1≤w≤1e9),中间空格隔开; 第二行输入n个数字,a1,a2,…,an(?1e6≤ai≤1e6),即每次操作后好感度变化。
输出:
初始好感度x可能的情况的数量。
样例输入
3 5
2 1 -3
样例输出
3
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
long long n,w,a[1001],min=1000000005,max=-1000000005,sum=0,ans;
cin>>n>>w;
for(int i=0; i<n; i++)
{
cin>>a[i];
if(i) a[i]+=a[i-1];
if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
}
if(max<0)
{
ans=w+min+1;
}
else
{
if(min<=0) ans=w-max+min+1;
else ans=w-max+1;
}
if(ans<0) cout<<0;
else cout<<ans;
return 0;
}