#include <bits/stdc++.h>
using namespace std;
#define int long long
#define arr array
#define pii pair<int, int>
#define fir first
#define sec second
#define vec vector
const int N = 1e5 + 5;
int n;
arr<pii, N> a;
map<int, set<int>> x, y;
void cmp() {
for (int i = 1; i <= n; i++)
x[a[i].fir].insert(a[i].sec), y[a[i].sec].insert(a[i].fir);
if (x.size() == 1 || y.size() == 1) {
cout << -1 << '\n';
return;
}
int x_df = -1, y_df = -1;
for (pair<int, set<int>> z : x) {
for (auto it = z.sec.begin(); it != z.sec.end(); it++) {
if (next(it, 1) == z.sec.end()) continue;
int df = *next(it, 1) - *it;
y_df = (y_df == -1) ? df : __gcd(y_df, df);
}
}
for (pair<int, set<int>> z : y) {
for (auto it = z.sec.begin(); it != z.sec.end(); it++) {
if (next(it, 1) == z.sec.end()) continue;
int df = *next(it, 1) - *it;
x_df = (x_df == -1) ? df : __gcd(x_df, df);
}
}
cout << x_df * y_df << '\n';
}
signed main() {
// freopen("in", "r", stdin);
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i].fir >> a[i].sec;
cmp();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |