제출 #1192180

#제출 시각아이디문제언어결과실행 시간메모리
1192180boclobanchatPortal (BOI24_portal)C++20
11 / 100
19 ms3600 KiB
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e5+5;
pair<long long,long long> P[MAXN];
long long X[MAXN],Y[MAXN];
bool comp(pair<long long,long long> a,pair<long long,long long> b) { return (a.second==0)>(b.second==0); }
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    long long n,g=0,h=0;
    cin>>n;
    if(n<=2) return cout<<-1,0;
    for(int i=1;i<=n;i++) cin>>X[i]>>Y[i];
    for(int i=1;i<n;i++) X[i]-=X[i+1],Y[i]-=Y[i+1],g=__gcd(g,Y[i]),P[i]={X[i],Y[i]};
    sort(P+1,P+n,comp);
    if(P[n-1].second==0) h=__gcd(h,P[n-1].first);
    for(int i=1;i<n-1;i++) if(P[i].second==0) h=__gcd(h,P[i].first);
	else h=__gcd(h,(X[i]*Y[i+1]-X[i+1]*Y[i])/__gcd(Y[i],Y[i+1]));
    if(!g||!h) return cout<<-1,0;
    cout<<abs(g*h);
}
#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...