| 比赛 |
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;
}