10912 2024. 04. 18 20:21:22 gortomi Rajz cpp17 Hibás válasz 0/100 90ms 29824 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)
{
    if(xb != xa)
    {
        long double b = (yb - ya) / (xb - xa);
        if(b == 0) return 0;
        long double x = xa + (-ya / b);
        return x > 0;
    }
    return xa > 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 1832 KiB
2 Hibás válasz 3ms 2024 KiB
subtask2 0/20
3 Elfogadva 3ms 2236 KiB
4 Hibás válasz 3ms 2456 KiB
5 Hibás válasz 3ms 2664 KiB
6 Hibás válasz 3ms 2752 KiB
7 Hibás válasz 3ms 2964 KiB
8 Hibás válasz 3ms 2956 KiB
9 Elfogadva 3ms 3052 KiB
10 Hibás válasz 3ms 2952 KiB
11 Elfogadva 3ms 3212 KiB
12 Elfogadva 3ms 3300 KiB
subtask3 0/20
13 Elfogadva 3ms 2236 KiB
14 Hibás válasz 3ms 2456 KiB
15 Hibás válasz 3ms 2664 KiB
16 Hibás válasz 3ms 2752 KiB
17 Hibás válasz 3ms 2964 KiB
18 Hibás válasz 3ms 2956 KiB
19 Elfogadva 3ms 3052 KiB
20 Hibás válasz 3ms 2952 KiB
21 Elfogadva 3ms 3212 KiB
22 Elfogadva 3ms 3300 KiB
23 Hibás válasz 3ms 3228 KiB
24 Hibás válasz 3ms 3264 KiB
25 Hibás válasz 3ms 3392 KiB
26 Hibás válasz 3ms 3364 KiB
27 Hibás válasz 3ms 3496 KiB
28 Hibás válasz 3ms 3420 KiB
29 Elfogadva 3ms 3512 KiB
30 Hibás válasz 3ms 3604 KiB
31 Elfogadva 3ms 3596 KiB
subtask4 0/20
32 Elfogadva 3ms 2236 KiB
33 Hibás válasz 3ms 2456 KiB
34 Hibás válasz 3ms 2664 KiB
35 Hibás válasz 3ms 2752 KiB
36 Hibás válasz 3ms 2964 KiB
37 Hibás válasz 3ms 2956 KiB
38 Elfogadva 3ms 3052 KiB
39 Hibás válasz 3ms 2952 KiB
40 Elfogadva 3ms 3212 KiB
41 Elfogadva 3ms 3300 KiB
42 Hibás válasz 3ms 3228 KiB
43 Hibás válasz 3ms 3264 KiB
44 Hibás válasz 3ms 3392 KiB
45 Hibás válasz 3ms 3364 KiB
46 Hibás válasz 3ms 3496 KiB
47 Hibás válasz 3ms 3420 KiB
48 Elfogadva 3ms 3512 KiB
49 Hibás válasz 3ms 3604 KiB
50 Elfogadva 3ms 3596 KiB
51 Hibás válasz 3ms 4204 KiB
52 Hibás válasz 3ms 4232 KiB
53 Hibás válasz 3ms 4232 KiB
54 Hibás válasz 3ms 4520 KiB
55 Hibás válasz 3ms 4768 KiB
56 Hibás válasz 3ms 4640 KiB
57 Hibás válasz 3ms 4596 KiB
58 Hibás válasz 3ms 4576 KiB
59 Hibás válasz 4ms 4824 KiB
60 Hibás válasz 3ms 5012 KiB
61 Hibás válasz 3ms 4864 KiB
62 Hibás válasz 3ms 4880 KiB
63 Hibás válasz 3ms 4904 KiB
64 Hibás válasz 3ms 5176 KiB
65 Hibás válasz 3ms 5128 KiB
66 Hibás válasz 3ms 5132 KiB
67 Hibás válasz 3ms 5032 KiB
68 Hibás válasz 3ms 5048 KiB
69 Elfogadva 3ms 5004 KiB
70 Hibás válasz 3ms 5032 KiB
subtask5 0/40
71 Elfogadva 3ms 2236 KiB
72 Hibás válasz 3ms 2456 KiB
73 Hibás válasz 3ms 2664 KiB
74 Hibás válasz 3ms 2752 KiB
75 Hibás válasz 3ms 2964 KiB
76 Hibás válasz 3ms 2956 KiB
77 Elfogadva 3ms 3052 KiB
78 Hibás válasz 3ms 2952 KiB
79 Elfogadva 3ms 3212 KiB
80 Elfogadva 3ms 3300 KiB
81 Hibás válasz 3ms 3228 KiB
82 Hibás válasz 3ms 3264 KiB
83 Hibás válasz 3ms 3392 KiB
84 Hibás válasz 3ms 3364 KiB
85 Hibás válasz 3ms 3496 KiB
86 Hibás válasz 3ms 3420 KiB
87 Elfogadva 3ms 3512 KiB
88 Hibás válasz 3ms 3604 KiB
89 Elfogadva 3ms 3596 KiB
90 Hibás válasz 3ms 4204 KiB
91 Hibás válasz 3ms 4232 KiB
92 Hibás válasz 3ms 4232 KiB
93 Hibás válasz 3ms 4520 KiB
94 Hibás válasz 3ms 4768 KiB
95 Hibás válasz 3ms 4640 KiB
96 Hibás válasz 3ms 4596 KiB
97 Hibás válasz 3ms 4576 KiB
98 Hibás válasz 4ms 4824 KiB
99 Hibás válasz 3ms 5012 KiB
100 Hibás válasz 3ms 4864 KiB
101 Hibás válasz 3ms 4880 KiB
102 Hibás válasz 3ms 4904 KiB
103 Hibás válasz 3ms 5176 KiB
104 Hibás válasz 3ms 5128 KiB
105 Hibás válasz 3ms 5132 KiB
106 Hibás válasz 3ms 5032 KiB
107 Hibás válasz 3ms 5048 KiB
108 Elfogadva 3ms 5004 KiB
109 Hibás válasz 3ms 5032 KiB
110 Hibás válasz 81ms 29244 KiB
111 Hibás válasz 85ms 29436 KiB
112 Hibás válasz 82ms 29544 KiB
113 Hibás válasz 85ms 29596 KiB
114 Hibás válasz 82ms 29596 KiB
115 Hibás válasz 81ms 29504 KiB
116 Hibás válasz 89ms 29500 KiB
117 Hibás válasz 85ms 29552 KiB
118 Hibás válasz 83ms 29552 KiB
119 Hibás válasz 90ms 29736 KiB
120 Hibás válasz 86ms 29768 KiB
121 Hibás válasz 85ms 29764 KiB
122 Hibás válasz 83ms 29740 KiB
123 Hibás válasz 83ms 29824 KiB
124 Hibás válasz 83ms 29816 KiB
125 Hibás válasz 83ms 29772 KiB
126 Hibás válasz 83ms 29712 KiB
127 Hibás válasz 83ms 29716 KiB
128 Hibás válasz 83ms 29704 KiB
129 Hibás válasz 82ms 29720 KiB
130 Hibás válasz 82ms 29676 KiB
131 Elfogadva 79ms 29732 KiB
132 Hibás válasz 83ms 29680 KiB