Submission #1192643

#TimeUsernameProblemLanguageResultExecution timeMemory
1192643boclobanchatPortal (BOI24_portal)C++20
11 / 100
12 ms1904 KiB
#include<bits/stdc++.h>
using namespace std;
#define ii pair<long long,long long>
#define fi first
#define se second
const int MAXN=1e5+5;
ii P[MAXN];
void update(ii& a,ii& b)
{
	if(a.fi<b.fi) swap(a,b);
	if(!b.fi) return ;
	while(a.fi)
	{
		if(a.fi<b.fi) swap(a,b);
		long long k=a.fi/b.fi;
		a.fi-=k*b.fi,a.se-=k*b.se;
	}
}
long long f(int i,int j) { return P[i].fi*P[j].se-P[i].se*P[j].fi; }
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    long long n,ans=0;
    cin>>n;
    if(n<=2) return cout<<-1,0;
    for(int i=1;i<=n;i++) cin>>P[i].fi>>P[i].se;
    for(int i=1;i<n;i++)
    {
    	P[i].fi-=P[i+1].fi,P[i].se-=P[i+1].se;
    	if(P[i].fi<0) P[i].fi=-P[i].fi,P[i].se=-P[i].se;
	}
    for(int i=2;i<n;i++) update(P[i-1],P[i]);
    for(int i=2;i<n-1;i++) P[i].se=__gcd(P[i].se,P[i-1].se);
    ans=f(n-2,n-1);
    if(!ans) return cout<<-1,0;
    cout<<abs(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...