Submission #1045220

#TimeUsernameProblemLanguageResultExecution timeMemory
1045220Darren0724Portal (BOI24_portal)C++17
1 / 100
37 ms4956 KiB
#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
#define int long long
#define all(x) x.begin(),x.end()
#define pii pair<int,int>
#define rz resize
#define pb emplace_back
#define LCBorz ios_base::sync_with_stdio(false);cin.tie(0);
#define endl '\n'
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
const int INF=4e18;
const int mod=1e9+7;
const int N=200005;
const int K=20;




 
int32_t main(){
    LCBorz;
    int n;cin>>n;
    int flag=0;
    vector<pair<int,int>> v(n),v1(n);
    for(int i=0;i<n;i++){
        int a,b;cin>>a>>b;
        v[i]={a,b};
        v1[i]={b,a};
    }
    sort(all(v));
    sort(all(v1));
    int g1=-1,g2=-1;
    for(int i=1;i<n;i++){
        if(v[i].x==v[i-1].x){
            flag=1;
        }   
        else{
            int t=v[i].x-v[i-1].x;
            g1=(g1==-1?t:__gcd(g1,t));
        }
        if(v1[i].x==v1[i-1].x){
            flag=1;
        }
        else{
            int t=v1[i].x-v1[i-1].x;
            g2=(g2==-1?t:__gcd(g2,t));
        }
    }
    if(!flag){
        cout<<-1<<endl;
    }
    else{
        cout<<g1*g2<<endl;
    }


    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...
#Verdict Execution timeMemoryGrader output
Fetching results...