Submission #994734

#TimeUsernameProblemLanguageResultExecution timeMemory
994734LCJLYPortal (BOI24_portal)C++14
0 / 100
750 ms1048576 KiB
#include <bits/stdc++.h>
using namespace std;
	
#define int long long 
#define ld long double
#define show(x,y) cout << y << " " << #x << endl;
#define show2(x,y,i,j) cout << y << " " << #x << "  " << j << " " << #i << endl;
#define show3(x,y,i,j,p,q) cout << y << " " << #x << "  " << j << " " << #i << "  " << q << " " << #p << endl;
#define show4(x,y) for(auto it:y) cout << it << " "; cout << #x << endl;
typedef pair<int,int>pii;
typedef pair<int,pii>pi2;

void solve(){	
	int n;
	cin >> n;
	pii arr[n];
	for(int x=0;x<n;x++){
		cin >> arr[x].first >> arr[x].second;
	}
	
	vector<int>diff;
	vector<int>diff2;
	for(int x=0;x<n;x++){
		for(int y=0;y<n;y++){
			pii hold=arr[x]; //higher
			pii hold2=arr[y];
			if(arr[x].second<arr[y].second) swap(hold,hold2);
			if(hold.second==hold2.second){
				diff.push_back(abs(hold.first-hold2.first));
			}
			else if(hold2.first<hold.first){
				diff.push_back(abs(hold.first-hold2.first));
				diff2.push_back(abs(hold.second-hold2.second)+1);
			}
			else if(hold2.first==hold.first){
				diff2.push_back(abs(hold.second-hold2.second));
			}
			else if(hold2.first>hold.first){
				diff.push_back(abs(hold.first-hold2.first));
				diff2.push_back(abs(hold.second-hold2.second)+1);
			}
		}
	}
	
	if(diff.size()==0||diff2.size()==0){
		cout << -1;
		return;
	}
	int hold=diff[0];
	int hold2=diff2[0];
	for(auto it:diff){
		hold=__gcd(hold,it);
	}
	for(auto it:diff2){
		hold2=__gcd(hold2,it);
	}
	cout << hold*hold2 << "\n";	
}
 
int32_t main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int t=1;
	//cin >> t;
	//freopen("in.txt","r",stdin);
	while(t--){
		solve();
	}
}


#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...