제출 #683786

#제출 시각아이디문제언어결과실행 시간메모리
683786luka1234Segments (IZhO18_segments)C++14
7 / 100
5051 ms2236 KiB
#include<bits/stdc++.h>
#define ll long long
#define ff first
#define ss second
#define db double
using namespace std;
int n,t;
pair<int,int> a[200002];
int id=1;
int ans=0;
int intersection(int x1,int y1,int x2,int y2){
	int f1=min(y1,y2);
	int f2=max(x1,x2);
	int f=f1-f2+1;
	if(f<=0)
	   f=0;
	return f;
}
int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cin>>n>>t;
	while(n--){
		int ind;
		cin>>ind;
		if(ind==1){
			int x,y;
			cin>>x>>y;
			x=x^(t*ans);
			y=y^(t*ans);
			if(x>y)
			   swap(x,y);
			a[id].ff=x;
			a[id].ss=y;
			id++;
		}
		if(ind==2){
			int pos;
			cin>>pos;
			a[pos].ff=-1;
			a[pos].ss=-1;
		}
		if(ind==3){
			int x,y,f;
			cin>>x>>y>>f;
			x=x^(t*ans);
			y=y^(t*ans);
			ans=0;
			if(x>y)
			   swap(x,y);
			for(int k=1;k<=id;k++){
				int z=intersection(a[k].ff,a[k].ss,x,y);
				if(z>=f)
				   ans++;
			}
			cout<<ans<<"\n";
		}
		
	}
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...