玄关求条
查看原帖
玄关求条
749280
xiaomo8125楼主2024/9/7 16:10
#include<iostream>
#include<cstdio>
#define N 10000005
using namespace std;
long long n,m,a[N],b[N],c[N],ans1,ans2;
int main(){
	scanf("%lld%lld",&n,&m);
	for(long long i=1;i<=m;i++){
		long long l,r,s,e;
		scanf("%lld%lld%lld%lld",&l,&r,&s,&e);
		if(s==e){
			b[l]+=s,b[l+1]-=s,b[r+1]-=s,b[r+2]+=s;
			continue;
		}
		long long x=(e-s)/(r-l);
		if(r-l>1)
		c[l]+=s,c[l+1]+=x-s,c[r+1]-=x*(r-l+1)+s;
		else{
			a[l]+=s,a[r]+=e-s,a[r+1]-=e;
		}
	}
	for(long long i=1;i<=n;i++){
		b[i]+=b[i-1]+c[i];
	}
	//for(long long i=1;i<=n;i++){
	//	b[i]+=d[i];
	//}
	//a[1]=b[1];
	//ans2=a[1],ans1=a[1];
	for(long long i=1;i<=n+5;i++){
		a[i]+=a[i-1]+b[i];
		//cout<<a[i]<<" ";
		ans2=max(ans2,a[i]);
		ans1^=a[i];
	}
//	for(int i=1;i<=n+5;i++){
//		cout<<a[i]<<" ";
//	}cout<<endl;
//	for(int i=1;i<=n+5;i++){
//		cout<<b[i]<<" ";
//	}cout<<endl;
//	for(int i=1;i<=n+5;i++){
//		cout<<c[i]<<" ";
//	}cout<<endl;
	cout<<ans1<<" "<<ans2;
	return 0;
}
2024/9/7 16:10
加载中...