Submission #1192541

#TimeUsernameProblemLanguageResultExecution timeMemory
1192541boclobanchatPortal (BOI24_portal)C++20
11 / 100
447 ms2012 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); } mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); int Rand(int l,int r) { return uniform_int_distribution<int>(l,r)(rng); } 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>>P[i].first>>P[i].second; sort(P+1,P+n+1); for(int i=1;i<n;i++) P[i].first-=P[i+1].first,P[i].second-=P[i+1].second,g=__gcd(g,P[i].second); sort(P+1,P+n,comp); int l=1; for(int i=1;i<n;i++) { if(P[i].second==0) h=__gcd(h,P[i].first),l++; P[i].second/=g; } if(l<=n-1) for(int it=1;it<=15e6;it++) { int i=Rand(l,n-1),j=Rand(l,n-1); h=__gcd(h,(P[i].first*P[j].second-P[i].second*P[j].first)); } 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...