10907 2024. 04. 18 19:53:07 gortomi Rajz cpp17 Hibás válasz 0/100 97ms 29836 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 0;
    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 Hibás válasz 3ms 1828 KiB
2 Hibás válasz 3ms 2020 KiB
subtask2 0/20
3 Hibás válasz 3ms 2104 KiB
4 Hibás válasz 3ms 2340 KiB
5 Hibás válasz 3ms 2456 KiB
6 Hibás válasz 3ms 2684 KiB
7 Hibás válasz 3ms 2900 KiB
8 Hibás válasz 3ms 2980 KiB
9 Hibás válasz 3ms 3388 KiB
10 Hibás válasz 3ms 3572 KiB
11 Elfogadva 3ms 3608 KiB
12 Elfogadva 3ms 3532 KiB
subtask3 0/20
13 Hibás válasz 3ms 2104 KiB
14 Hibás válasz 3ms 2340 KiB
15 Hibás válasz 3ms 2456 KiB
16 Hibás válasz 3ms 2684 KiB
17 Hibás válasz 3ms 2900 KiB
18 Hibás válasz 3ms 2980 KiB
19 Hibás válasz 3ms 3388 KiB
20 Hibás válasz 3ms 3572 KiB
21 Elfogadva 3ms 3608 KiB
22 Elfogadva 3ms 3532 KiB
23 Hibás válasz 3ms 3536 KiB
24 Hibás válasz 3ms 3628 KiB
25 Hibás válasz 3ms 3960 KiB
26 Hibás válasz 3ms 4088 KiB
27 Hibás válasz 3ms 4088 KiB
28 Hibás válasz 3ms 3972 KiB
29 Elfogadva 3ms 4104 KiB
30 Elfogadva 3ms 4192 KiB
31 Hibás válasz 3ms 4316 KiB
subtask4 0/20
32 Hibás válasz 3ms 2104 KiB
33 Hibás válasz 3ms 2340 KiB
34 Hibás válasz 3ms 2456 KiB
35 Hibás válasz 3ms 2684 KiB
36 Hibás válasz 3ms 2900 KiB
37 Hibás válasz 3ms 2980 KiB
38 Hibás válasz 3ms 3388 KiB
39 Hibás válasz 3ms 3572 KiB
40 Elfogadva 3ms 3608 KiB
41 Elfogadva 3ms 3532 KiB
42 Hibás válasz 3ms 3536 KiB
43 Hibás válasz 3ms 3628 KiB
44 Hibás válasz 3ms 3960 KiB
45 Hibás válasz 3ms 4088 KiB
46 Hibás válasz 3ms 4088 KiB
47 Hibás válasz 3ms 3972 KiB
48 Elfogadva 3ms 4104 KiB
49 Elfogadva 3ms 4192 KiB
50 Hibás válasz 3ms 4316 KiB
51 Hibás válasz 4ms 4764 KiB
52 Hibás válasz 3ms 4768 KiB
53 Hibás válasz 4ms 5048 KiB
54 Hibás válasz 3ms 4996 KiB
55 Hibás válasz 3ms 5120 KiB
56 Hibás válasz 3ms 5392 KiB
57 Hibás válasz 4ms 5344 KiB
58 Hibás válasz 3ms 5632 KiB
59 Hibás válasz 3ms 5500 KiB
60 Hibás válasz 3ms 5504 KiB
61 Hibás válasz 3ms 5448 KiB
62 Hibás válasz 3ms 5452 KiB
63 Hibás válasz 4ms 5572 KiB
64 Hibás válasz 3ms 5580 KiB
65 Hibás válasz 3ms 5584 KiB
66 Hibás válasz 4ms 5536 KiB
67 Elfogadva 3ms 5672 KiB
68 Elfogadva 3ms 5576 KiB
69 Elfogadva 3ms 5504 KiB
70 Elfogadva 3ms 5532 KiB
subtask5 0/40
71 Hibás válasz 3ms 2104 KiB
72 Hibás válasz 3ms 2340 KiB
73 Hibás válasz 3ms 2456 KiB
74 Hibás válasz 3ms 2684 KiB
75 Hibás válasz 3ms 2900 KiB
76 Hibás válasz 3ms 2980 KiB
77 Hibás válasz 3ms 3388 KiB
78 Hibás válasz 3ms 3572 KiB
79 Elfogadva 3ms 3608 KiB
80 Elfogadva 3ms 3532 KiB
81 Hibás válasz 3ms 3536 KiB
82 Hibás válasz 3ms 3628 KiB
83 Hibás válasz 3ms 3960 KiB
84 Hibás válasz 3ms 4088 KiB
85 Hibás válasz 3ms 4088 KiB
86 Hibás válasz 3ms 3972 KiB
87 Elfogadva 3ms 4104 KiB
88 Elfogadva 3ms 4192 KiB
89 Hibás válasz 3ms 4316 KiB
90 Hibás válasz 4ms 4764 KiB
91 Hibás válasz 3ms 4768 KiB
92 Hibás válasz 4ms 5048 KiB
93 Hibás válasz 3ms 4996 KiB
94 Hibás válasz 3ms 5120 KiB
95 Hibás válasz 3ms 5392 KiB
96 Hibás válasz 4ms 5344 KiB
97 Hibás válasz 3ms 5632 KiB
98 Hibás válasz 3ms 5500 KiB
99 Hibás válasz 3ms 5504 KiB
100 Hibás válasz 3ms 5448 KiB
101 Hibás válasz 3ms 5452 KiB
102 Hibás válasz 4ms 5572 KiB
103 Hibás válasz 3ms 5580 KiB
104 Hibás válasz 3ms 5584 KiB
105 Hibás válasz 4ms 5536 KiB
106 Elfogadva 3ms 5672 KiB
107 Elfogadva 3ms 5576 KiB
108 Elfogadva 3ms 5504 KiB
109 Elfogadva 3ms 5532 KiB
110 Hibás válasz 87ms 29752 KiB
111 Hibás válasz 93ms 29764 KiB
112 Hibás válasz 89ms 29824 KiB
113 Hibás válasz 93ms 29720 KiB
114 Hibás válasz 93ms 29776 KiB
115 Hibás válasz 93ms 29764 KiB
116 Hibás válasz 97ms 29724 KiB
117 Hibás válasz 96ms 29732 KiB
118 Hibás válasz 96ms 29728 KiB
119 Hibás válasz 96ms 29792 KiB
120 Hibás válasz 96ms 29836 KiB
121 Hibás válasz 97ms 29732 KiB
122 Hibás válasz 93ms 29772 KiB
123 Hibás válasz 96ms 29768 KiB
124 Hibás válasz 96ms 29804 KiB
125 Hibás válasz 92ms 29724 KiB
126 Hibás válasz 96ms 29784 KiB
127 Hibás válasz 96ms 29824 KiB
128 Elfogadva 94ms 29820 KiB
129 Hibás válasz 90ms 29820 KiB
130 Hibás válasz 94ms 29780 KiB
131 Elfogadva 75ms 29820 KiB
132 Elfogadva 96ms 29836 KiB