Submission #1189390

#TimeUsernameProblemLanguageResultExecution timeMemory
1189390petezaPortal (BOI24_portal)C++20
11 / 100
71 ms13732 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int n, x, y;
map<int, vector<ll>> mpx, mpy;
vector<ll> xs, ys;

int main() {
    cin.tie(0) -> sync_with_stdio(0);
    cin >> n;
    for(int i=0;i<n;i++) {
        cin >> x >> y;
        xs.push_back(x); ys.push_back(y);
        mpx[x].push_back(y);
        mpy[y].push_back(x);
    }
    sort(xs.begin(), xs.end()); sort(ys.begin(), ys.end());
    for(auto &e:mpx) sort(e.second.begin(), e.second.end());
    for(auto &e:mpy) sort(e.second.begin(), e.second.end());
    ll ans = -1;
    ll cgcd = 0;
    for(auto &e:mpx) {
        for(int i=1;i<e.second.size();i++) {
            cgcd = __gcd(cgcd, e.second[i] - e.second[i-1]);
        }
    }
    if(cgcd) {
        ll cgcd2 = 0;
        for(int i=1;i<xs.size();i++) cgcd2 = __gcd(cgcd2, xs[i] - xs[i-1]);
        ans = max(ans, cgcd*cgcd2);
    }
    if(!ans) ans = -1;
    cgcd = 0;
    for(auto &e:mpy) {
        for(int i=1;i<e.second.size();i++) {
            cgcd = __gcd(cgcd, e.second[i] - e.second[i-1]);
        }
    }
    if(cgcd) {
        ll cgcd2 = 0;
        for(int i=1;i<ys.size();i++) cgcd2 = __gcd(cgcd2, ys[i] - ys[i-1]);
        ans = max(ans, cgcd*cgcd2);
    }
    if(!ans) ans = -1;
    cout << ans;
}
#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...