Submission #1178862

#TimeUsernameProblemLanguageResultExecution timeMemory
1178862gygPortal (BOI24_portal)C++20
10 / 100
108 ms20768 KiB
#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 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...