记录编号 568669 评测结果 AAAAAAAAAA
题目名称 人工湖 最终得分 100
用户昵称 Gravatar波风水门 是否通过 通过
代码语言 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;
}