比赛 2026.9.12 评测结果 AAAAAAAAAA
题目名称 画线 最终得分 100
用户昵称 exil 运行时间 2.680 s
代码语言 C++ 内存使用 42.14 MiB
提交时间 2026-09-12 08:48:56
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define int long long
struct node{
    int l,r,sum,summin;
};
node shu[8000005];
void jianshu(int k,int l,int r){
    shu[k]={l,r,0,INT_MAX};
    if(l==r){
        return;
    }
    int mid=(l+r)/2;
    jianshu(k<<1,l,mid);
    jianshu(k<<1|1,mid+1,r);
}
void add(int k,int wei,int zhi){
    if(shu[k].l>wei || shu[k].r<wei)return;
    if(shu[k].l==shu[k].r && shu[k].l==wei){
        shu[k].sum=zhi;
        shu[k].summin=zhi;
        return;
    }
    add(k<<1,wei,zhi);
    add(k<<1|1,wei,zhi);
    shu[k].sum=max(shu[k<<1].sum,shu[k<<1|1].sum);
    shu[k].summin=min(shu[k<<1].summin,shu[k<<1|1].summin);
}
int cha(int k,int l,int r){
    if(shu[k].l>r || shu[k].r<l)return 0;
    if(shu[k].l>=l && shu[k].r<=r){
        return shu[k].sum;
    }
    return max(cha(k<<1,l,r),cha(k<<1|1,l,r));
}
int cha2(int k,int l,int r){
    if(shu[k].l>r || shu[k].r<l)return INT_MAX;
    if(shu[k].l>=l && shu[k].r<=r){
        return shu[k].summin;
    }
    return min(cha2(k<<1,l,r),cha2(k<<1|1,l,r));
}
signed main(){
    freopen("circle.in","r",stdin);
    freopen("circle.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n,q;
    cin>>n>>q;
    jianshu(1,1,n);
    
    for(int i = 1;i<=q;i++){
        int l,r;
        cin>>l>>r;
        if(l>r)swap(l,r);
        int minn=cha2(1,l,r),maxx=cha(1,l,r);
        if(maxx>r || minn<l){
            cout<<"No\n";
            continue;
        }
        else{
            cout<<"Yes\n";
            add(1,l,r);
            add(1,r,l);
        }
        
    }
    return 0;
}