60pts求助
查看原帖
60pts求助
661913
liwenxi1145144444楼主2024/7/15 14:44
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,cnt,sum,x;
struct node{
	int x,id,w;
}a[200005];
bool cmp(node a,node b){
	return a.x<b.x;
}
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		int id;
		cin>>id;
		if(id==1){
			int l,r,w;
			cin>>l>>r>>w;
			a[++cnt]={l,1,w};
			a[++cnt]={r+1,1,w};
		}
		if(id==2){
			int x,w;
			cin>>x>>w;
			a[++cnt]={x,2,w};
		}
		if(id==3){
			int x,w;
			cin>>x>>w;
			a[++cnt]={x,3,w};
			sum^=w;
		}
	}
	sort(a+1,a+cnt+1,cmp);
	int maxn=LONG_LONG_MIN;
	for(int i=1;i<=cnt;i++){
		if(a[i].id==1){
			sum^=a[i].w;
			if(sum>=maxn){
				maxn=sum;
				x=a[i].x;
			}
		}else{
			sum^=a[i].w;
			if(sum>=maxn){
				maxn=sum;
				x=a[i].x;
			}
			sum^=a[i].w;
		}
	}
	cout<<maxn<<" "<<x;
	return 0;
}
2024/7/15 14:44
加载中...