题解 | 子段和

子段和

https://www.nowcoder.com/practice/ee0a9c6366e240f2bbea0ff8594e405e

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=5e5+10;
int a[N];
signed main()
{
    int n;
    cin>>n;
    int z=0,f=0,l=0;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        if(a[i]==0)
        {
            l++;
        }
        else if(a[i]>0)
        {
            z++;
        }
        else if(a[i]<0)
        {
            f++;
        }
    }
    if(l)
    {
        cout<<"NO"<<endl;
        return 0;
    }
    sort(a+1,a+1+n);
    if(a[f]+a[f+1]==0)
    {
        if(a[f]+a[n]==0)
        {
            cout<<"NO"<<endl;
            return 0;
        }
        cout<<"YES"<<endl;
    }
    else {
        // cout<<a[f]<<endl;
        // cout<<a[f+1]<<endl;
        // cout<<a[f]+a[f+1]<<endl;
        cout<<"YES"<<endl;
    }
    return 0;
}

全部评论

相关推荐

LuminousZJ:不行,最后还是要看学信网的,这点不能伪装,也骗不过人家,得不偿失
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务