【题解】P2629 好消息,坏消息

https://www.luogu.com.cn/problem/P2629

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1000010;
int n,i,a[N],q[N],miq[N],miz[N],ans;
signed main(){
    cin>>n;
    miq[0]=1e17;miz[n+1]=1e17;
    for(i=1;i<=n;i++){
        cin>>a[i];
        q[i]=q[i-1]+a[i];
        miq[i]=min(q[i],miq[i-1]);
    }
    for(i=n;i>=1;i--) miz[i]=min(q[i],miz[i+1]);
    for(i=1;i<=n;i++) if((miz[i]-q[i-1]>=0)&&(miq[i-1]+q[n]-q[i-1]>=0)) ans++;
    cout<<ans;
}

 

请登录后发表评论

    没有回复内容