Submission #968113

#TimeUsernameProblemLanguageResultExecution timeMemory
968113PM1Spiral (BOI16_spiral)C++17
0 / 100
1 ms348 KiB
#include <bits/stdc++.h>
using namespace std;
#define  ll long long
const int mxn=1e9+5,M=1e9+7;
int n,q;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>q;
	while(q--){
		int x,y,xx,yy;
		cin>>y>>x>>yy>>xx;
		ll w=max(abs(x),abs(y));
		ll z=(w*2+1)%M,zz=(z*z)%M;
		if(-w==x){
			assert((zz-(w-y)+M*2)%M >=0);
			cout<<(zz-(w-y)+M*2)%M<<'\n';
			continue;
		}
		zz-=z-1;
		zz+=M;
		zz%=M;
		if(-w==y){
			assert((zz-(x+w-1)+M*2)%M >=0);
			cout<<(zz-(x+w-1)+M*2)%M<<'\n';
			continue;
		}
		zz-=z-1;
		zz+=M;
		zz%=M;
		if(x==w){
			assert((zz-(x+w-1)+M*2)%M >=0);
			cout<<(zz-(x+w-1)+M*2)%M<<'\n';
			continue;
		}
		zz-=z-1;
		zz+=M;
		zz%=M;
		assert((zz-(w-1-x)+M*2)%M >=0);
		cout<<(zz-(w-1-x)+M*2)%M<<'\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...