最后一个点WA求助
查看原帖
最后一个点WA求助
1287433
__ycy1124__楼主2024/10/16 15:07

#include<bits/stdc++.h>
using namespace std;
long long x[5],y[5];
const int md=1e9+7;
long long work(long long n){
	//printf("%lld %lld\n",n,(n+1)*(n)/2);
	return (n+1)*(n)/2;
}
int main(){
	int n;
	scanf("%d%lld%lld%lld%lld",&n,&x[1],&y[1],&x[2],&y[2]);
	x[3]=-1e9,y[3]=-1e9,x[4]=1e9,y[4]=1e9;
	for(int i=1;i<=n;i++){
		scanf("%lld%lld",&x[0],&y[0]);
		x[3]=max(x[3],x[0]);
		y[3]=max(y[3],y[0]);
		x[4]=min(x[4],x[0]);
		y[4]=min(y[4],y[0]);
	}
	if(x[1]<x[2]){
		swap(x[1],x[2]);
	}
	if(y[1]<y[2]){
		swap(y[1],y[2]);
	}
	if(n==0){
		printf("%lld",work(x[1]-x[2])%md*work(y[1]-y[2])%md);
	}
	else{
		printf("%lld",(work(x[1]-x[2]-x[3]+x[4]+1)-work(x[1]-x[3])-work(x[4]-x[2]))%md*(work(y[1]-y[2]-y[3]+y[4]+1)%md-work(y[1]-y[3])%md-work(y[4]-y[2]))%md);
	}
	return 0;
}
2024/10/16 15:07
加载中...