给定一个序列,问你有没有可能重新排列这个序列使得所有长度小于等于 22 的子区间和不等于 00。

using namespace std;
#include <string>
long long a[500000];
long long minn,maxn;
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%lld",&a[i]);
        if(a[i]<0)
            minn=a[i];
        else if(a[i]==0)
        {
            cout<<"NO";
            return 0;
        }
        else
            maxn=a[i];
    }
    long long fmax=minn,fmin=maxn;
    for(int i=0;i<n;i++)
    {
        if(a[i]>fmax&&a[i]<0)
        {
            fmax=a[i];
        }
        if(a[i]<0&&a[i]<minn)
        {
            minn=a[i];
        }
        if(a[i]>0&&a[i]<fmin)
        {
            fmin=a[i];
        }
        if(a[i]>0&&a[i]>maxn)
        {
            maxn=a[i];
        }
            
    }
    if(maxn==fmin&&minn==fmax&&minn+maxn==0)
        cout<<"NO";
    else
        cout<<"YES";
        
        
        
        
        
}