Submission #1219478

#TimeUsernameProblemLanguageResultExecution timeMemory
121947812345678Portal (BOI24_portal)C++20
11 / 100
2096 ms4700 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const int nx=1e5+5; ll n, x[nx], y[nx], gx, gy; struct myvector { ll x, y; myvector(ll x=0, ll y=0): x(x), y(y){} } v[nx]; vector<myvector> bs; ll cross(myvector a, myvector b) { return a.x*b.y-a.y*b.x; } int main() { cin.tie(NULL)->sync_with_stdio(false); cin>>n; for (int i=1; i<=n; i++) cin>>x[i]>>y[i]; for (int i=2; i<=n; i++) v[i-1]=myvector(x[i]-x[1], y[i]-y[1]); for (int i=1; i<=n-1; i++) { int f=0; for (int j=1; j<i; j++) if (cross(v[j], v[i])==0) f=1; if (f) continue; myvector cur; for (int j=1; j<=i; j++) if (cross(v[j], v[i])==0) cur=myvector(__gcd(cur.x, v[j].x), __gcd(cur.y, v[j].y)); //cout<<"debug "<<cur.x<<' '<<cur.y<<'\n'; bs.push_back(cur); } if (bs.size()>2) cout<<1; else if (bs.size()==2) cout<<abs(cross(bs[0], bs[1])); else cout<<-1; } /* 3 1 2 4 1 0 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...