109112024-04-18 20:14:47gortomiRajzcpp17Wrong answer 0/10090ms29764 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";
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted3ms1828 KiB
2Wrong answer3ms2020 KiB
subtask20/20
3Accepted3ms2252 KiB
4Accepted2ms2320 KiB
5Wrong answer3ms2668 KiB
6Wrong answer3ms2716 KiB
7Wrong answer3ms2932 KiB
8Accepted2ms3016 KiB
9Wrong answer3ms3100 KiB
10Wrong answer3ms3464 KiB
11Accepted3ms3320 KiB
12Accepted3ms3532 KiB
subtask30/20
13Accepted3ms2252 KiB
14Accepted2ms2320 KiB
15Wrong answer3ms2668 KiB
16Wrong answer3ms2716 KiB
17Wrong answer3ms2932 KiB
18Accepted2ms3016 KiB
19Wrong answer3ms3100 KiB
20Wrong answer3ms3464 KiB
21Accepted3ms3320 KiB
22Accepted3ms3532 KiB
23Wrong answer3ms3616 KiB
24Wrong answer3ms3620 KiB
25Wrong answer3ms3896 KiB
26Wrong answer3ms3868 KiB
27Wrong answer3ms3956 KiB
28Wrong answer3ms4164 KiB
29Wrong answer3ms4176 KiB
30Wrong answer3ms4400 KiB
31Accepted3ms4484 KiB
subtask40/20
32Accepted3ms2252 KiB
33Accepted2ms2320 KiB
34Wrong answer3ms2668 KiB
35Wrong answer3ms2716 KiB
36Wrong answer3ms2932 KiB
37Accepted2ms3016 KiB
38Wrong answer3ms3100 KiB
39Wrong answer3ms3464 KiB
40Accepted3ms3320 KiB
41Accepted3ms3532 KiB
42Wrong answer3ms3616 KiB
43Wrong answer3ms3620 KiB
44Wrong answer3ms3896 KiB
45Wrong answer3ms3868 KiB
46Wrong answer3ms3956 KiB
47Wrong answer3ms4164 KiB
48Wrong answer3ms4176 KiB
49Wrong answer3ms4400 KiB
50Accepted3ms4484 KiB
51Wrong answer3ms4820 KiB
52Wrong answer3ms5116 KiB
53Wrong answer3ms5200 KiB
54Wrong answer3ms5132 KiB
55Wrong answer3ms5160 KiB
56Wrong answer3ms5160 KiB
57Wrong answer3ms5204 KiB
58Wrong answer3ms5192 KiB
59Wrong answer3ms5192 KiB
60Wrong answer3ms5192 KiB
61Wrong answer3ms5164 KiB
62Wrong answer3ms5164 KiB
63Wrong answer3ms5416 KiB
64Wrong answer3ms5508 KiB
65Wrong answer3ms5344 KiB
66Wrong answer3ms5344 KiB
67Wrong answer3ms5344 KiB
68Wrong answer3ms5376 KiB
69Wrong answer3ms5376 KiB
70Wrong answer3ms5380 KiB
subtask50/40
71Accepted3ms2252 KiB
72Accepted2ms2320 KiB
73Wrong answer3ms2668 KiB
74Wrong answer3ms2716 KiB
75Wrong answer3ms2932 KiB
76Accepted2ms3016 KiB
77Wrong answer3ms3100 KiB
78Wrong answer3ms3464 KiB
79Accepted3ms3320 KiB
80Accepted3ms3532 KiB
81Wrong answer3ms3616 KiB
82Wrong answer3ms3620 KiB
83Wrong answer3ms3896 KiB
84Wrong answer3ms3868 KiB
85Wrong answer3ms3956 KiB
86Wrong answer3ms4164 KiB
87Wrong answer3ms4176 KiB
88Wrong answer3ms4400 KiB
89Accepted3ms4484 KiB
90Wrong answer3ms4820 KiB
91Wrong answer3ms5116 KiB
92Wrong answer3ms5200 KiB
93Wrong answer3ms5132 KiB
94Wrong answer3ms5160 KiB
95Wrong answer3ms5160 KiB
96Wrong answer3ms5204 KiB
97Wrong answer3ms5192 KiB
98Wrong answer3ms5192 KiB
99Wrong answer3ms5192 KiB
100Wrong answer3ms5164 KiB
101Wrong answer3ms5164 KiB
102Wrong answer3ms5416 KiB
103Wrong answer3ms5508 KiB
104Wrong answer3ms5344 KiB
105Wrong answer3ms5344 KiB
106Wrong answer3ms5344 KiB
107Wrong answer3ms5376 KiB
108Wrong answer3ms5376 KiB
109Wrong answer3ms5380 KiB
110Wrong answer79ms29584 KiB
111Wrong answer85ms29628 KiB
112Wrong answer81ms29636 KiB
113Wrong answer86ms29640 KiB
114Wrong answer82ms29640 KiB
115Wrong answer79ms29592 KiB
116Wrong answer83ms29612 KiB
117Wrong answer83ms29700 KiB
118Wrong answer87ms29756 KiB
119Wrong answer90ms29592 KiB
120Wrong answer89ms29592 KiB
121Wrong answer85ms29648 KiB
122Wrong answer89ms29692 KiB
123Wrong answer85ms29708 KiB
124Wrong answer83ms29724 KiB
125Wrong answer82ms29764 KiB
126Wrong answer82ms29764 KiB
127Wrong answer82ms29700 KiB
128Wrong answer82ms29700 KiB
129Wrong answer82ms29756 KiB
130Wrong answer82ms29696 KiB
131Wrong answer64ms29644 KiB
132Wrong answer82ms29644 KiB