比赛 |
EYOI常规赛 2nd |
评测结果 |
AAAAAAAAAA |
题目名称 |
人工湖 |
最终得分 |
100 |
用户昵称 |
ZRQ |
运行时间 |
0.045 s |
代码语言 |
C++ |
内存使用 |
3.11 MiB |
提交时间 |
2021-12-16 21:36:20 |
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,t[100005];
bool vis[100005];
char ch;
inline void read(int &x){x=0;ch=getchar();while(ch<48||ch>57) ch=getchar();while(ch>47&&ch<58) x=(x<<3)+(x<<1)+(ch^48),ch=getchar();}
void add(int i,int k){while(i<=n-1) t[i]+=k,i+=i&-i;}
int ask(int i)
{
int res=0;
while(i>0) res+=t[i],i-=i&-i;
return res;
}
int main()
{
freopen("lakee.in","r",stdin);
freopen("lakee.out","w",stdout);
int f,a,b;
read(n);read(m);
for(int i=1;i<=m;++i)
{
read(f),read(a),read(b);
if(a>b) swap(a,b);
if(!f)
{
if(a==1&&b==n) vis[n]=1-vis[n];
else
{
if(!vis[a]) add(a,1);
else add(a,-1);
vis[a]=1-vis[a];
}
}
else
{
if((vis[b-1]||ask(b-1)-ask(a-1))&&(ask(a-1)||ask(n-1)-ask(b-1)||vis[n])) printf("NO\n");
else printf("YES\n");
}
}
return 0;
}