10911 2024. 04. 18 20:14:47 gortomi Rajz cpp17 Hibás válasz 0/100 90ms 29764 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
vector<int> p, r;
int n;
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)
{
    return rand() % 2;
    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(2 * n + 1);
    r.resize(2 * n + 1);
    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 3ms 1828 KiB
2 Hibás válasz 3ms 2020 KiB
subtask2 0/20
3 Elfogadva 3ms 2252 KiB
4 Elfogadva 2ms 2320 KiB
5 Hibás válasz 3ms 2668 KiB
6 Hibás válasz 3ms 2716 KiB
7 Hibás válasz 3ms 2932 KiB
8 Elfogadva 2ms 3016 KiB
9 Hibás válasz 3ms 3100 KiB
10 Hibás válasz 3ms 3464 KiB
11 Elfogadva 3ms 3320 KiB
12 Elfogadva 3ms 3532 KiB
subtask3 0/20
13 Elfogadva 3ms 2252 KiB
14 Elfogadva 2ms 2320 KiB
15 Hibás válasz 3ms 2668 KiB
16 Hibás válasz 3ms 2716 KiB
17 Hibás válasz 3ms 2932 KiB
18 Elfogadva 2ms 3016 KiB
19 Hibás válasz 3ms 3100 KiB
20 Hibás válasz 3ms 3464 KiB
21 Elfogadva 3ms 3320 KiB
22 Elfogadva 3ms 3532 KiB
23 Hibás válasz 3ms 3616 KiB
24 Hibás válasz 3ms 3620 KiB
25 Hibás válasz 3ms 3896 KiB
26 Hibás válasz 3ms 3868 KiB
27 Hibás válasz 3ms 3956 KiB
28 Hibás válasz 3ms 4164 KiB
29 Hibás válasz 3ms 4176 KiB
30 Hibás válasz 3ms 4400 KiB
31 Elfogadva 3ms 4484 KiB
subtask4 0/20
32 Elfogadva 3ms 2252 KiB
33 Elfogadva 2ms 2320 KiB
34 Hibás válasz 3ms 2668 KiB
35 Hibás válasz 3ms 2716 KiB
36 Hibás válasz 3ms 2932 KiB
37 Elfogadva 2ms 3016 KiB
38 Hibás válasz 3ms 3100 KiB
39 Hibás válasz 3ms 3464 KiB
40 Elfogadva 3ms 3320 KiB
41 Elfogadva 3ms 3532 KiB
42 Hibás válasz 3ms 3616 KiB
43 Hibás válasz 3ms 3620 KiB
44 Hibás válasz 3ms 3896 KiB
45 Hibás válasz 3ms 3868 KiB
46 Hibás válasz 3ms 3956 KiB
47 Hibás válasz 3ms 4164 KiB
48 Hibás válasz 3ms 4176 KiB
49 Hibás válasz 3ms 4400 KiB
50 Elfogadva 3ms 4484 KiB
51 Hibás válasz 3ms 4820 KiB
52 Hibás válasz 3ms 5116 KiB
53 Hibás válasz 3ms 5200 KiB
54 Hibás válasz 3ms 5132 KiB
55 Hibás válasz 3ms 5160 KiB
56 Hibás válasz 3ms 5160 KiB
57 Hibás válasz 3ms 5204 KiB
58 Hibás válasz 3ms 5192 KiB
59 Hibás válasz 3ms 5192 KiB
60 Hibás válasz 3ms 5192 KiB
61 Hibás válasz 3ms 5164 KiB
62 Hibás válasz 3ms 5164 KiB
63 Hibás válasz 3ms 5416 KiB
64 Hibás válasz 3ms 5508 KiB
65 Hibás válasz 3ms 5344 KiB
66 Hibás válasz 3ms 5344 KiB
67 Hibás válasz 3ms 5344 KiB
68 Hibás válasz 3ms 5376 KiB
69 Hibás válasz 3ms 5376 KiB
70 Hibás válasz 3ms 5380 KiB
subtask5 0/40
71 Elfogadva 3ms 2252 KiB
72 Elfogadva 2ms 2320 KiB
73 Hibás válasz 3ms 2668 KiB
74 Hibás válasz 3ms 2716 KiB
75 Hibás válasz 3ms 2932 KiB
76 Elfogadva 2ms 3016 KiB
77 Hibás válasz 3ms 3100 KiB
78 Hibás válasz 3ms 3464 KiB
79 Elfogadva 3ms 3320 KiB
80 Elfogadva 3ms 3532 KiB
81 Hibás válasz 3ms 3616 KiB
82 Hibás válasz 3ms 3620 KiB
83 Hibás válasz 3ms 3896 KiB
84 Hibás válasz 3ms 3868 KiB
85 Hibás válasz 3ms 3956 KiB
86 Hibás válasz 3ms 4164 KiB
87 Hibás válasz 3ms 4176 KiB
88 Hibás válasz 3ms 4400 KiB
89 Elfogadva 3ms 4484 KiB
90 Hibás válasz 3ms 4820 KiB
91 Hibás válasz 3ms 5116 KiB
92 Hibás válasz 3ms 5200 KiB
93 Hibás válasz 3ms 5132 KiB
94 Hibás válasz 3ms 5160 KiB
95 Hibás válasz 3ms 5160 KiB
96 Hibás válasz 3ms 5204 KiB
97 Hibás válasz 3ms 5192 KiB
98 Hibás válasz 3ms 5192 KiB
99 Hibás válasz 3ms 5192 KiB
100 Hibás válasz 3ms 5164 KiB
101 Hibás válasz 3ms 5164 KiB
102 Hibás válasz 3ms 5416 KiB
103 Hibás válasz 3ms 5508 KiB
104 Hibás válasz 3ms 5344 KiB
105 Hibás válasz 3ms 5344 KiB
106 Hibás válasz 3ms 5344 KiB
107 Hibás válasz 3ms 5376 KiB
108 Hibás válasz 3ms 5376 KiB
109 Hibás válasz 3ms 5380 KiB
110 Hibás válasz 79ms 29584 KiB
111 Hibás válasz 85ms 29628 KiB
112 Hibás válasz 81ms 29636 KiB
113 Hibás válasz 86ms 29640 KiB
114 Hibás válasz 82ms 29640 KiB
115 Hibás válasz 79ms 29592 KiB
116 Hibás válasz 83ms 29612 KiB
117 Hibás válasz 83ms 29700 KiB
118 Hibás válasz 87ms 29756 KiB
119 Hibás válasz 90ms 29592 KiB
120 Hibás válasz 89ms 29592 KiB
121 Hibás válasz 85ms 29648 KiB
122 Hibás válasz 89ms 29692 KiB
123 Hibás válasz 85ms 29708 KiB
124 Hibás válasz 83ms 29724 KiB
125 Hibás válasz 82ms 29764 KiB
126 Hibás válasz 82ms 29764 KiB
127 Hibás válasz 82ms 29700 KiB
128 Hibás válasz 82ms 29700 KiB
129 Hibás válasz 82ms 29756 KiB
130 Hibás válasz 82ms 29696 KiB
131 Hibás válasz 64ms 29644 KiB
132 Hibás válasz 82ms 29644 KiB