| 26184 | 2026-03-20 14:08:58 | LazurAndras | Rajz | cpp17 | Elfogadva 100/100 | 158ms | 8836 KiB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
struct Point{
int x, y;
};
const int N = 1001;
vector<Point>v(N);
vector<pair<int, int>>p;
vector<int>parent(2*N), s(2*N, 1);
int fordul(Point a, Point b, Point c)
{
int w = (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x);
if(w < 0) return -1;
if(w > 0) return 1;
return 0;
}
bool metsz(Point a, Point b, Point c, Point d)
{
return (fordul(a, b, c) * fordul(a, b, d) == -1 && fordul(c, d, a) * fordul(c, d, b) == -1);
}
int dist(Point a, Point b)
{
return (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y);
}
bool srt(pair<int, int>a, pair<int, int>b)
{
pair<Point, Point> x = {v[a.first], v[a.second]}, y = {v[b.first], v[b.second]};
return dist(x.first, x.second) < dist(y.first, y.second);
}
int holvan(int a)
{
if(a == parent[a]) return a;
parent[a] = holvan(parent[a]);
return parent[a];
}
bool unio(int a, int b)
{
int x = holvan(a), y = holvan(b);
if(x != y)
{
if(s[x] < s[y]) swap(x, y);
s[x] += s[y];
parent[y] = x;
return 0;
}
return 1;
}
signed main() {
ios::sync_with_stdio(false);cin.tie(nullptr);
int n; cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> v[i].x >> v[i].y;
}
for(int i = 1; i <= n; i++)
for(int j = i+1; j <= n; j++)
p.push_back({i, j});
sort(p.begin(), p.end(), srt);
for(int i = 1; i <= 2*n; i++) parent[i] = i;
Point origo = {0LL, 0LL};
Point k = {1000000001LL, 1LL};
for(int i = 0; i < p.size(); i++)
{
bool x = metsz(origo, k, v[p[i].first], v[p[i].second]);
int p1 = p[i].first, p2 = p[i].second, p3 = p1+n, p4 = p2+n;
if(x) swap(p2, p4);
if(unio(p1, p2) || unio(p3, p4))
{
bool ans = (holvan(p1) == holvan(p1+n));
if(ans) {cout << dist(v[p[i].first], v[p[i].second]); return 0;}
}
}
cout << -1;
}
| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| 2 | Elfogadva | 1ms | 316 KiB | ||||
| subtask2 | 20/20 | ||||||
| 3 | Elfogadva | 1ms | 316 KiB | ||||
| 4 | Elfogadva | 1ms | 316 KiB | ||||
| 5 | Elfogadva | 1ms | 316 KiB | ||||
| 6 | Elfogadva | 1ms | 316 KiB | ||||
| 7 | Elfogadva | 1ms | 316 KiB | ||||
| 8 | Elfogadva | 1ms | 316 KiB | ||||
| 9 | Elfogadva | 1ms | 428 KiB | ||||
| 10 | Elfogadva | 1ms | 316 KiB | ||||
| 11 | Elfogadva | 1ms | 560 KiB | ||||
| 12 | Elfogadva | 1ms | 316 KiB | ||||
| subtask3 | 20/20 | ||||||
| 13 | Elfogadva | 1ms | 316 KiB | ||||
| 14 | Elfogadva | 1ms | 316 KiB | ||||
| 15 | Elfogadva | 1ms | 316 KiB | ||||
| 16 | Elfogadva | 1ms | 316 KiB | ||||
| 17 | Elfogadva | 1ms | 316 KiB | ||||
| 18 | Elfogadva | 1ms | 316 KiB | ||||
| 19 | Elfogadva | 1ms | 428 KiB | ||||
| 20 | Elfogadva | 1ms | 316 KiB | ||||
| 21 | Elfogadva | 1ms | 560 KiB | ||||
| 22 | Elfogadva | 1ms | 316 KiB | ||||
| 23 | Elfogadva | 1ms | 316 KiB | ||||
| 24 | Elfogadva | 1ms | 316 KiB | ||||
| 25 | Elfogadva | 1ms | 316 KiB | ||||
| 26 | Elfogadva | 1ms | 316 KiB | ||||
| 27 | Elfogadva | 1ms | 316 KiB | ||||
| 28 | Elfogadva | 1ms | 316 KiB | ||||
| 29 | Elfogadva | 1ms | 316 KiB | ||||
| 30 | Elfogadva | 1ms | 508 KiB | ||||
| 31 | Elfogadva | 1ms | 316 KiB | ||||
| subtask4 | 20/20 | ||||||
| 32 | Elfogadva | 1ms | 316 KiB | ||||
| 33 | Elfogadva | 1ms | 316 KiB | ||||
| 34 | Elfogadva | 1ms | 316 KiB | ||||
| 35 | Elfogadva | 1ms | 316 KiB | ||||
| 36 | Elfogadva | 1ms | 316 KiB | ||||
| 37 | Elfogadva | 1ms | 316 KiB | ||||
| 38 | Elfogadva | 1ms | 428 KiB | ||||
| 39 | Elfogadva | 1ms | 316 KiB | ||||
| 40 | Elfogadva | 1ms | 560 KiB | ||||
| 41 | Elfogadva | 1ms | 316 KiB | ||||
| 42 | Elfogadva | 1ms | 316 KiB | ||||
| 43 | Elfogadva | 1ms | 316 KiB | ||||
| 44 | Elfogadva | 1ms | 316 KiB | ||||
| 45 | Elfogadva | 1ms | 316 KiB | ||||
| 46 | Elfogadva | 1ms | 316 KiB | ||||
| 47 | Elfogadva | 1ms | 316 KiB | ||||
| 48 | Elfogadva | 1ms | 316 KiB | ||||
| 49 | Elfogadva | 1ms | 508 KiB | ||||
| 50 | Elfogadva | 1ms | 316 KiB | ||||
| 51 | Elfogadva | 2ms | 604 KiB | ||||
| 52 | Elfogadva | 2ms | 564 KiB | ||||
| 53 | Elfogadva | 2ms | 564 KiB | ||||
| 54 | Elfogadva | 2ms | 564 KiB | ||||
| 55 | Elfogadva | 2ms | 564 KiB | ||||
| 56 | Elfogadva | 2ms | 572 KiB | ||||
| 57 | Elfogadva | 2ms | 564 KiB | ||||
| 58 | Elfogadva | 2ms | 468 KiB | ||||
| 59 | Elfogadva | 3ms | 756 KiB | ||||
| 60 | Elfogadva | 2ms | 564 KiB | ||||
| 61 | Elfogadva | 3ms | 568 KiB | ||||
| 62 | Elfogadva | 3ms | 564 KiB | ||||
| 63 | Elfogadva | 2ms | 580 KiB | ||||
| 64 | Elfogadva | 3ms | 580 KiB | ||||
| 65 | Elfogadva | 2ms | 516 KiB | ||||
| 66 | Elfogadva | 3ms | 568 KiB | ||||
| 67 | Elfogadva | 2ms | 564 KiB | ||||
| 68 | Elfogadva | 2ms | 580 KiB | ||||
| 69 | Elfogadva | 2ms | 564 KiB | ||||
| 70 | Elfogadva | 2ms | 564 KiB | ||||
| subtask5 | 40/40 | ||||||
| 71 | Elfogadva | 1ms | 316 KiB | ||||
| 72 | Elfogadva | 1ms | 316 KiB | ||||
| 73 | Elfogadva | 1ms | 316 KiB | ||||
| 74 | Elfogadva | 1ms | 316 KiB | ||||
| 75 | Elfogadva | 1ms | 316 KiB | ||||
| 76 | Elfogadva | 1ms | 316 KiB | ||||
| 77 | Elfogadva | 1ms | 428 KiB | ||||
| 78 | Elfogadva | 1ms | 316 KiB | ||||
| 79 | Elfogadva | 1ms | 560 KiB | ||||
| 80 | Elfogadva | 1ms | 316 KiB | ||||
| 81 | Elfogadva | 1ms | 316 KiB | ||||
| 82 | Elfogadva | 1ms | 316 KiB | ||||
| 83 | Elfogadva | 1ms | 316 KiB | ||||
| 84 | Elfogadva | 1ms | 316 KiB | ||||
| 85 | Elfogadva | 1ms | 316 KiB | ||||
| 86 | Elfogadva | 1ms | 316 KiB | ||||
| 87 | Elfogadva | 1ms | 316 KiB | ||||
| 88 | Elfogadva | 1ms | 508 KiB | ||||
| 89 | Elfogadva | 1ms | 316 KiB | ||||
| 90 | Elfogadva | 2ms | 604 KiB | ||||
| 91 | Elfogadva | 2ms | 564 KiB | ||||
| 92 | Elfogadva | 2ms | 564 KiB | ||||
| 93 | Elfogadva | 2ms | 564 KiB | ||||
| 94 | Elfogadva | 2ms | 564 KiB | ||||
| 95 | Elfogadva | 2ms | 572 KiB | ||||
| 96 | Elfogadva | 2ms | 564 KiB | ||||
| 97 | Elfogadva | 2ms | 468 KiB | ||||
| 98 | Elfogadva | 3ms | 756 KiB | ||||
| 99 | Elfogadva | 2ms | 564 KiB | ||||
| 100 | Elfogadva | 3ms | 568 KiB | ||||
| 101 | Elfogadva | 3ms | 564 KiB | ||||
| 102 | Elfogadva | 2ms | 580 KiB | ||||
| 103 | Elfogadva | 3ms | 580 KiB | ||||
| 104 | Elfogadva | 2ms | 516 KiB | ||||
| 105 | Elfogadva | 3ms | 568 KiB | ||||
| 106 | Elfogadva | 2ms | 564 KiB | ||||
| 107 | Elfogadva | 2ms | 580 KiB | ||||
| 108 | Elfogadva | 2ms | 564 KiB | ||||
| 109 | Elfogadva | 2ms | 564 KiB | ||||
| 110 | Elfogadva | 138ms | 8600 KiB | ||||
| 111 | Elfogadva | 141ms | 8796 KiB | ||||
| 112 | Elfogadva | 137ms | 8600 KiB | ||||
| 113 | Elfogadva | 141ms | 8672 KiB | ||||
| 114 | Elfogadva | 138ms | 8732 KiB | ||||
| 115 | Elfogadva | 140ms | 8600 KiB | ||||
| 116 | Elfogadva | 145ms | 8792 KiB | ||||
| 117 | Elfogadva | 148ms | 8600 KiB | ||||
| 118 | Elfogadva | 149ms | 8600 KiB | ||||
| 119 | Elfogadva | 143ms | 8636 KiB | ||||
| 120 | Elfogadva | 144ms | 8600 KiB | ||||
| 121 | Elfogadva | 146ms | 8672 KiB | ||||
| 122 | Elfogadva | 148ms | 8608 KiB | ||||
| 123 | Elfogadva | 145ms | 8600 KiB | ||||
| 124 | Elfogadva | 143ms | 8836 KiB | ||||
| 125 | Elfogadva | 145ms | 8600 KiB | ||||
| 126 | Elfogadva | 155ms | 8600 KiB | ||||
| 127 | Elfogadva | 153ms | 8784 KiB | ||||
| 128 | Elfogadva | 151ms | 8600 KiB | ||||
| 129 | Elfogadva | 152ms | 8600 KiB | ||||
| 130 | Elfogadva | 153ms | 8792 KiB | ||||
| 131 | Elfogadva | 115ms | 8608 KiB | ||||
| 132 | Elfogadva | 158ms | 8600 KiB | ||||