记录编号 |
568669 |
评测结果 |
AAAAAAAAAA |
题目名称 |
人工湖 |
最终得分 |
100 |
用户昵称 |
波风水门 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.786 s |
提交时间 |
2022-01-24 17:22:51 |
内存使用 |
5.35 MiB |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m;
int tr[500001];
int lowbit(int x)
{
return x&(-x);
}
int sum(int x)
{
int res=0;
for(int i=x;i>0;i-=lowbit(i)) res+=tr[i];
return res;
}
void add(int x,int v)
{
for(int i=x;i<=2*n+2;i+=lowbit(i)) tr[i]+=v;
}
int main()
{
freopen("lakee.in","r",stdin);
freopen("lakee.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=2*n+2;i++)
{
add(i,1);
}
for(int i=1;i<=m;i++)
{
int a,b,c;
cin>>a>>b>>c;
if(b>c)swap(b,c);
if(a==0)
{
if(sum(b)-sum(b-1)==1)
{
add(b,-1);
add(b+n,-1);
}
else
{
add(b,1);
add(b+n,1);
}
}
else
{
if((sum(c-1)-sum(b-1))==c-b||(sum(b+n-1)-sum(c-1))==n-(c-b)) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
return 0;
}