10910 2024. 04. 18 20:10:48 gortomi Rajz cpp17 Hibás válasz 0/100 92ms 37832 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
vector<int> p, r;
int n;
const int MAX =500000;
int get(int v)
{
    return p[v] == 0 ? v : p[v] = get(p[v]);
}
void unio(int a, int b)
{
    a = get(a);
    b = get(b);
    if(a != b)
    {
        if(r[a] < r[b]) swap(a, b);
        p[b] = a;
        if(r[a] == r[b]) r[a]++;
    }
}
struct val
{
    ll a, b, d;
};
bool insc(ll xa, ll xb, ll ya, ll yb)
{
    long double b = (yb - ya) / (xb - xa);
    if(b == 0) return 0;
    long double x = xa + (-ya / b);
    return x > 0;
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n;
    p.resize(MAX);
    r.resize(MAX);
    vector<ll> x(n + 1), y(n + 1);
    vector<val> e;
    for(int i = 1; i <= n; i++)
    {
        cin >> x[i] >> y[i];
        for(int j = 1; j < i; j++)
        {
            ll dx = x[i] - x[j], dy = y[i] - y[j];
            e.push_back({j, i, dx * dx + dy * dy});
        }
    }
    sort(e.begin(), e.end(), [](val a, val b)
    {
        return a.d < b.d;
    });
    for(auto [a, b, d] : e)
    {
        bool g = insc(x[a], x[b], y[a], y[b]);
        if(g)
        {
            unio(a, b + n);
            unio(a + n, b);
        }
        else
        {
            unio(a, b);
            unio(a + n, b + n);
        }
        if(get(a) == get(a + n))
        {
            cout << d << "\n";
            return 0;
        }
    }
    cout << "-1\n";
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 7ms 9808 KiB
2 Hibás válasz 6ms 9880 KiB
subtask2 0/20
3 Elfogadva 6ms 10140 KiB
4 Hibás válasz 4ms 10352 KiB
5 Futási hiba 6ms 10780 KiB
6 Hibás válasz 6ms 10436 KiB
7 Hibás válasz 6ms 10704 KiB
8 Hibás válasz 6ms 10864 KiB
9 Elfogadva 4ms 10808 KiB
10 Hibás válasz 6ms 10868 KiB
11 Elfogadva 6ms 10988 KiB
12 Elfogadva 4ms 11240 KiB
subtask3 0/20
13 Elfogadva 6ms 10140 KiB
14 Hibás válasz 4ms 10352 KiB
15 Futási hiba 6ms 10780 KiB
16 Hibás válasz 6ms 10436 KiB
17 Hibás válasz 6ms 10704 KiB
18 Hibás válasz 6ms 10864 KiB
19 Elfogadva 4ms 10808 KiB
20 Hibás válasz 6ms 10868 KiB
21 Elfogadva 6ms 10988 KiB
22 Elfogadva 4ms 11240 KiB
23 Futási hiba 6ms 11744 KiB
24 Futási hiba 6ms 11656 KiB
25 Hibás válasz 4ms 11432 KiB
26 Hibás válasz 6ms 11556 KiB
27 Hibás válasz 6ms 11768 KiB
28 Hibás válasz 6ms 11884 KiB
29 Elfogadva 6ms 11840 KiB
30 Hibás válasz 6ms 11976 KiB
31 Futási hiba 6ms 12256 KiB
subtask4 0/20
32 Elfogadva 6ms 10140 KiB
33 Hibás válasz 4ms 10352 KiB
34 Futási hiba 6ms 10780 KiB
35 Hibás válasz 6ms 10436 KiB
36 Hibás válasz 6ms 10704 KiB
37 Hibás válasz 6ms 10864 KiB
38 Elfogadva 4ms 10808 KiB
39 Hibás válasz 6ms 10868 KiB
40 Elfogadva 6ms 10988 KiB
41 Elfogadva 4ms 11240 KiB
42 Futási hiba 6ms 11744 KiB
43 Futási hiba 6ms 11656 KiB
44 Hibás válasz 4ms 11432 KiB
45 Hibás válasz 6ms 11556 KiB
46 Hibás válasz 6ms 11768 KiB
47 Hibás válasz 6ms 11884 KiB
48 Elfogadva 6ms 11840 KiB
49 Hibás válasz 6ms 11976 KiB
50 Futási hiba 6ms 12256 KiB
51 Futási hiba 7ms 12976 KiB
52 Futási hiba 7ms 13044 KiB
53 Futási hiba 7ms 13124 KiB
54 Futási hiba 7ms 13044 KiB
55 Futási hiba 6ms 13156 KiB
56 Hibás válasz 7ms 13100 KiB
57 Hibás válasz 7ms 13036 KiB
58 Hibás válasz 7ms 13044 KiB
59 Hibás válasz 7ms 13188 KiB
60 Hibás válasz 6ms 13136 KiB
61 Futási hiba 6ms 13312 KiB
62 Hibás válasz 7ms 13124 KiB
63 Futási hiba 6ms 13208 KiB
64 Hibás válasz 7ms 12928 KiB
65 Hibás válasz 6ms 13016 KiB
66 Futási hiba 7ms 13100 KiB
67 Hibás válasz 6ms 12936 KiB
68 Hibás válasz 7ms 13020 KiB
69 Elfogadva 7ms 13016 KiB
70 Hibás válasz 7ms 13012 KiB
subtask5 0/40
71 Elfogadva 6ms 10140 KiB
72 Hibás válasz 4ms 10352 KiB
73 Futási hiba 6ms 10780 KiB
74 Hibás válasz 6ms 10436 KiB
75 Hibás válasz 6ms 10704 KiB
76 Hibás válasz 6ms 10864 KiB
77 Elfogadva 4ms 10808 KiB
78 Hibás válasz 6ms 10868 KiB
79 Elfogadva 6ms 10988 KiB
80 Elfogadva 4ms 11240 KiB
81 Futási hiba 6ms 11744 KiB
82 Futási hiba 6ms 11656 KiB
83 Hibás válasz 4ms 11432 KiB
84 Hibás válasz 6ms 11556 KiB
85 Hibás válasz 6ms 11768 KiB
86 Hibás válasz 6ms 11884 KiB
87 Elfogadva 6ms 11840 KiB
88 Hibás válasz 6ms 11976 KiB
89 Futási hiba 6ms 12256 KiB
90 Futási hiba 7ms 12976 KiB
91 Futási hiba 7ms 13044 KiB
92 Futási hiba 7ms 13124 KiB
93 Futási hiba 7ms 13044 KiB
94 Futási hiba 6ms 13156 KiB
95 Hibás válasz 7ms 13100 KiB
96 Hibás válasz 7ms 13036 KiB
97 Hibás válasz 7ms 13044 KiB
98 Hibás válasz 7ms 13188 KiB
99 Hibás válasz 6ms 13136 KiB
100 Futási hiba 6ms 13312 KiB
101 Hibás válasz 7ms 13124 KiB
102 Futási hiba 6ms 13208 KiB
103 Hibás válasz 7ms 12928 KiB
104 Hibás válasz 6ms 13016 KiB
105 Futási hiba 7ms 13100 KiB
106 Hibás válasz 6ms 12936 KiB
107 Hibás válasz 7ms 13020 KiB
108 Elfogadva 7ms 13016 KiB
109 Hibás válasz 7ms 13012 KiB
110 Futási hiba 82ms 37116 KiB
111 Futási hiba 82ms 37120 KiB
112 Futási hiba 82ms 37120 KiB
113 Futási hiba 89ms 37028 KiB
114 Futási hiba 90ms 37156 KiB
115 Futási hiba 83ms 37296 KiB
116 Hibás válasz 92ms 37216 KiB
117 Hibás válasz 92ms 37320 KiB
118 Hibás válasz 90ms 37304 KiB
119 Hibás válasz 86ms 37316 KiB
120 Hibás válasz 92ms 37432 KiB
121 Hibás válasz 92ms 37312 KiB
122 Futási hiba 87ms 37428 KiB
123 Hibás válasz 86ms 37424 KiB
124 Futási hiba 90ms 37552 KiB
125 Hibás válasz 90ms 37424 KiB
126 Futási hiba 90ms 37688 KiB
127 Futási hiba 86ms 37832 KiB
128 Futási hiba 90ms 37688 KiB
129 Futási hiba 85ms 37640 KiB
130 Hibás válasz 83ms 37644 KiB
131 Elfogadva 82ms 37644 KiB
132 Hibás válasz 90ms 37648 KiB