#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <math.h>
#include <bitset>
#include <algorithm>
#include <climits>
using namespace std;
const int N = 3000005,mod = 1e9+7;
set<int> s;int n,q;
map<int,int> mp;
int main(){
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++) s.insert(i);
while(q--){
int op,l,r,x;
scanf("%d",&op);
if(op==0){
scanf("%d%d%d",&l,&r,&x);
auto it=s.lower_bound(l),it2=s.upper_bound(r);
if(x==0){
vector<int> v;
for(auto i=it;i!=it2;i++){
v.push_back(*i);
}
for(int i=0;i<v.size();i++) s.erase(s.find(v[i]));
}else{
auto it=mp.lower_bound(l);
if(it!=mp.end()&&it->second<=r) continue;
mp[l]=r;
auto it2=mp.lower_bound(l);
while(it2!=mp.begin()&&(prev(it2)->second)>=r){
mp.erase(prev(it2));
}
}
}else{
scanf("%d",&x);
if(s.count(x)==0){cout<<"NO"<<endl;}
else{
auto it=s.find(x);
int l,r;
if(it==s.begin()) l=0;
else l=*prev(it);
if(next(it)==s.end()) r=1e9;
else r=*next(it);
auto it2=mp.upper_bound(l);
if(it2!=mp.end()&&it2->first<=x&&it2->second<r){
cout<<"YES"<<endl;
}else{
cout<<"N/A"<<endl;
}
}
}
}
}
Codeforces Round #773 (Div. 1) C. Anonymity Is Important
最新推荐文章于 2023-02-04 15:35:33 发布