10906 2024. 04. 18 19:52:37 gortomi Rajz cpp17 Hibás válasz 0/100 89ms 30020 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 1;
    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 1956 KiB
subtask2 0/20
3 Hibás válasz 3ms 2168 KiB
4 Hibás válasz 3ms 2376 KiB
5 Hibás válasz 3ms 2600 KiB
6 Hibás válasz 3ms 2824 KiB
7 Hibás válasz 3ms 2884 KiB
8 Hibás válasz 3ms 2980 KiB
9 Hibás válasz 3ms 2976 KiB
10 Hibás válasz 3ms 3120 KiB
11 Elfogadva 3ms 3232 KiB
12 Elfogadva 3ms 3328 KiB
subtask3 0/20
13 Hibás válasz 3ms 2168 KiB
14 Hibás válasz 3ms 2376 KiB
15 Hibás válasz 3ms 2600 KiB
16 Hibás válasz 3ms 2824 KiB
17 Hibás válasz 3ms 2884 KiB
18 Hibás válasz 3ms 2980 KiB
19 Hibás válasz 3ms 2976 KiB
20 Hibás válasz 3ms 3120 KiB
21 Elfogadva 3ms 3232 KiB
22 Elfogadva 3ms 3328 KiB
23 Hibás válasz 3ms 3448 KiB
24 Hibás válasz 3ms 3664 KiB
25 Hibás válasz 3ms 3872 KiB
26 Hibás válasz 3ms 3960 KiB
27 Hibás válasz 3ms 3940 KiB
28 Hibás válasz 3ms 3936 KiB
29 Hibás válasz 3ms 3928 KiB
30 Hibás válasz 3ms 4016 KiB
31 Hibás válasz 3ms 3916 KiB
subtask4 0/20
32 Hibás válasz 3ms 2168 KiB
33 Hibás válasz 3ms 2376 KiB
34 Hibás válasz 3ms 2600 KiB
35 Hibás válasz 3ms 2824 KiB
36 Hibás válasz 3ms 2884 KiB
37 Hibás válasz 3ms 2980 KiB
38 Hibás válasz 3ms 2976 KiB
39 Hibás válasz 3ms 3120 KiB
40 Elfogadva 3ms 3232 KiB
41 Elfogadva 3ms 3328 KiB
42 Hibás válasz 3ms 3448 KiB
43 Hibás válasz 3ms 3664 KiB
44 Hibás válasz 3ms 3872 KiB
45 Hibás válasz 3ms 3960 KiB
46 Hibás válasz 3ms 3940 KiB
47 Hibás válasz 3ms 3936 KiB
48 Hibás válasz 3ms 3928 KiB
49 Hibás válasz 3ms 4016 KiB
50 Hibás válasz 3ms 3916 KiB
51 Hibás válasz 3ms 4200 KiB
52 Hibás válasz 3ms 4476 KiB
53 Hibás válasz 3ms 4440 KiB
54 Hibás válasz 3ms 4580 KiB
55 Hibás válasz 3ms 4520 KiB
56 Hibás válasz 3ms 4516 KiB
57 Hibás válasz 3ms 4444 KiB
58 Hibás válasz 3ms 4464 KiB
59 Hibás válasz 3ms 4444 KiB
60 Hibás válasz 3ms 4440 KiB
61 Hibás válasz 3ms 4484 KiB
62 Hibás válasz 3ms 4472 KiB
63 Hibás válasz 3ms 4728 KiB
64 Hibás válasz 3ms 5020 KiB
65 Hibás válasz 3ms 4868 KiB
66 Hibás válasz 3ms 5148 KiB
67 Hibás válasz 3ms 5076 KiB
68 Hibás válasz 3ms 5108 KiB
69 Hibás válasz 3ms 5304 KiB
70 Hibás válasz 3ms 5360 KiB
subtask5 0/40
71 Hibás válasz 3ms 2168 KiB
72 Hibás válasz 3ms 2376 KiB
73 Hibás válasz 3ms 2600 KiB
74 Hibás válasz 3ms 2824 KiB
75 Hibás válasz 3ms 2884 KiB
76 Hibás válasz 3ms 2980 KiB
77 Hibás válasz 3ms 2976 KiB
78 Hibás válasz 3ms 3120 KiB
79 Elfogadva 3ms 3232 KiB
80 Elfogadva 3ms 3328 KiB
81 Hibás válasz 3ms 3448 KiB
82 Hibás válasz 3ms 3664 KiB
83 Hibás válasz 3ms 3872 KiB
84 Hibás válasz 3ms 3960 KiB
85 Hibás válasz 3ms 3940 KiB
86 Hibás válasz 3ms 3936 KiB
87 Hibás válasz 3ms 3928 KiB
88 Hibás válasz 3ms 4016 KiB
89 Hibás válasz 3ms 3916 KiB
90 Hibás válasz 3ms 4200 KiB
91 Hibás válasz 3ms 4476 KiB
92 Hibás válasz 3ms 4440 KiB
93 Hibás válasz 3ms 4580 KiB
94 Hibás válasz 3ms 4520 KiB
95 Hibás válasz 3ms 4516 KiB
96 Hibás válasz 3ms 4444 KiB
97 Hibás válasz 3ms 4464 KiB
98 Hibás válasz 3ms 4444 KiB
99 Hibás válasz 3ms 4440 KiB
100 Hibás válasz 3ms 4484 KiB
101 Hibás válasz 3ms 4472 KiB
102 Hibás válasz 3ms 4728 KiB
103 Hibás válasz 3ms 5020 KiB
104 Hibás válasz 3ms 4868 KiB
105 Hibás válasz 3ms 5148 KiB
106 Hibás válasz 3ms 5076 KiB
107 Hibás válasz 3ms 5108 KiB
108 Hibás válasz 3ms 5304 KiB
109 Hibás válasz 3ms 5360 KiB
110 Hibás válasz 86ms 29484 KiB
111 Hibás válasz 86ms 29456 KiB
112 Hibás válasz 85ms 29452 KiB
113 Hibás válasz 85ms 29456 KiB
114 Hibás válasz 86ms 29504 KiB
115 Hibás válasz 85ms 29452 KiB
116 Hibás válasz 87ms 29456 KiB
117 Hibás válasz 89ms 29460 KiB
118 Hibás válasz 87ms 29516 KiB
119 Hibás válasz 89ms 29596 KiB
120 Hibás válasz 89ms 29668 KiB
121 Hibás válasz 89ms 29672 KiB
122 Hibás válasz 89ms 29684 KiB
123 Hibás válasz 85ms 29840 KiB
124 Hibás válasz 87ms 29784 KiB
125 Hibás válasz 87ms 29788 KiB
126 Hibás válasz 87ms 29712 KiB
127 Hibás válasz 83ms 29668 KiB
128 Hibás válasz 87ms 29840 KiB
129 Hibás válasz 86ms 30020 KiB
130 Hibás válasz 83ms 29936 KiB
131 Hibás válasz 68ms 29924 KiB
132 Hibás válasz 83ms 29920 KiB