求助,80分,第一个点WA
查看原帖
求助,80分,第一个点WA
784813
SakurajiamaMai楼主2023/9/2 16:36
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int n,m,res=1,op_pos,op;
bool vis[N],_pos,_pos_;
struct node
{
    int x,pos;
    bool operator<(const node&w)const
    {
        return x<w.x;
    }
}a[N];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i].x;
        if(a[i].x<0) a[i].pos=-1,a[i].x=-a[i].x;
        else a[i].pos=1;
    }
    vis[a[1].x]=true,op=a[1].x,op_pos=a[1].pos;
    if(op_pos==1) _pos=true;
    else _pos_=true;
    sort(a+1,a+1+n);
    bool s=false;
    for(int i=1;i<=n;i++) if(a[i].pos*op_pos<0) s=true;
    if(!s||a[1].x==op&&op_pos==-1) return cout<<1<<endl,0;
    for(int i=1;i<=n;i++){
        if(a[i].x==op) continue;
        if((a[i].x<op&&(op_pos==-1||_pos)&&a[i].pos==1)) res++,_pos_=true;
        else if(a[i].x>op&&(op_pos==1||_pos_)&&a[i].pos==-1) res++,_pos=true;
    }
    cout<<res;
    return 0;
}
2023/9/2 16:36
加载中...