Task: | 6G network |
Sender: | bubu2006 |
Submission time: | 2024-11-11 16:30:47 +0200 |
Language: | C++ (C++20) |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.00 s | details |
#2 | ACCEPTED | 0.00 s | details |
#3 | ACCEPTED | 0.00 s | details |
#4 | ACCEPTED | 0.00 s | details |
#5 | ACCEPTED | 0.00 s | details |
#6 | ACCEPTED | 0.00 s | details |
#7 | ACCEPTED | 0.00 s | details |
#8 | ACCEPTED | 0.00 s | details |
#9 | ACCEPTED | 0.00 s | details |
#10 | ACCEPTED | 0.00 s | details |
#11 | ACCEPTED | 0.00 s | details |
#12 | ACCEPTED | 0.00 s | details |
#13 | ACCEPTED | 0.01 s | details |
#14 | ACCEPTED | 0.00 s | details |
#15 | ACCEPTED | 0.00 s | details |
#16 | ACCEPTED | 0.00 s | details |
#17 | ACCEPTED | 0.00 s | details |
#18 | ACCEPTED | 0.00 s | details |
#19 | ACCEPTED | 0.00 s | details |
#20 | ACCEPTED | 0.00 s | details |
#21 | ACCEPTED | 0.00 s | details |
#22 | ACCEPTED | 0.00 s | details |
#23 | ACCEPTED | 0.00 s | details |
#24 | ACCEPTED | 0.00 s | details |
#25 | ACCEPTED | 0.00 s | details |
#26 | ACCEPTED | 0.00 s | details |
#27 | ACCEPTED | 0.00 s | details |
#28 | ACCEPTED | 0.00 s | details |
#29 | ACCEPTED | 0.00 s | details |
#30 | ACCEPTED | 0.00 s | details |
#31 | ACCEPTED | 0.01 s | details |
#32 | ACCEPTED | 0.01 s | details |
#33 | ACCEPTED | 0.01 s | details |
#34 | ACCEPTED | 0.01 s | details |
#35 | ACCEPTED | 0.01 s | details |
#36 | ACCEPTED | 0.01 s | details |
#37 | ACCEPTED | 0.01 s | details |
#38 | ACCEPTED | 0.01 s | details |
#39 | ACCEPTED | 0.01 s | details |
#40 | ACCEPTED | 0.01 s | details |
#41 | ACCEPTED | 0.01 s | details |
#42 | ACCEPTED | 0.01 s | details |
#43 | ACCEPTED | 0.01 s | details |
#44 | ACCEPTED | 0.01 s | details |
#45 | ACCEPTED | 0.01 s | details |
#46 | ACCEPTED | 0.01 s | details |
#47 | ACCEPTED | 0.01 s | details |
#48 | ACCEPTED | 0.01 s | details |
#49 | ACCEPTED | 0.01 s | details |
#50 | ACCEPTED | 0.01 s | details |
#51 | ACCEPTED | 0.05 s | details |
#52 | ACCEPTED | 0.05 s | details |
#53 | ACCEPTED | 0.05 s | details |
#54 | ACCEPTED | 0.05 s | details |
#55 | ACCEPTED | 0.05 s | details |
#56 | ACCEPTED | 0.06 s | details |
#57 | ACCEPTED | 0.05 s | details |
#58 | ACCEPTED | 0.05 s | details |
#59 | ACCEPTED | 0.05 s | details |
#60 | ACCEPTED | 0.05 s | details |
#61 | ACCEPTED | 0.18 s | details |
#62 | ACCEPTED | 0.19 s | details |
#63 | ACCEPTED | 0.19 s | details |
#64 | ACCEPTED | 0.18 s | details |
#65 | ACCEPTED | 0.18 s | details |
Code
#include <bits/stdc++.h> #include <iomanip> using namespace std; #define int long long #define rep(i, a, b) for(int i = a; i < (b); ++i) #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() typedef long long ll; typedef pair<int, int> pii; typedef vector<int> vi; /** * Author: Ulf Lundstrom * Date: 2009-02-26 * License: CC0 * Source: My head with inspiration from tinyKACTL * Description: Class to handle points in the plane. * T can be e.g. double or long long. (Avoid int.) * Status: Works fine, used a lot */ template <class T> int sgn(T x) { return (x > 0) - (x < 0); } template<class T> struct Point { typedef Point P; T x, y; explicit Point(T x=0, T y=0) : x(x), y(y) {} bool operator<(P p) const { return tie(x,y) < tie(p.x,p.y); } bool operator==(P p) const { return tie(x,y)==tie(p.x,p.y); } P operator+(P p) const { return P(x+p.x, y+p.y); } P operator-(P p) const { return P(x-p.x, y-p.y); } P operator*(T d) const { return P(x*d, y*d); } P operator/(T d) const { return P(x/d, y/d); } T dot(P p) const { return x*p.x + y*p.y; } T cross(P p) const { return x*p.y - y*p.x; } T cross(P a, P b) const { return (a-*this).cross(b-*this); } T dist2() const { return x*x + y*y; } double dist() const { return sqrt((double)dist2()); } // angle to x-axis in interval [-pi, pi] double angle() const { return atan2(y, x); } P unit() const { return *this/dist(); } // makes dist()=1 P perp() const { return P(-y, x); } // rotates +90 degrees P normal() const { return perp().unit(); } // returns point rotated 'a' radians ccw around the origin P rotate(double a) const { return P(x*cos(a)-y*sin(a),x*sin(a)+y*cos(a)); } friend ostream& operator<<(ostream& os, P p) { return os << "(" << p.x << "," << p.y << ")"; } }; template<class T> T polygonArea2(vector<Point<T>>& v) { T a = v.back().cross(v[0]); rep(i,0,sz(v)-1) a += v[i].cross(v[i+1]); return a; } struct UF { vi e; UF(int n) : e(n, -1) {} bool sameSet(int a, int b) { return find(a) == find(b); } int size(int x) { return -e[find(x)]; } int find(int x) { return e[x] < 0 ? x : e[x] = find(e[x]); } bool join(int a, int b) { a = find(a), b = find(b); if (a == b) return false; if (e[a] > e[b]) swap(a, b); e[a] += e[b]; e[b] = a; return true; } }; signed main() { cin.tie(0)->sync_with_stdio(0); cin.exceptions(cin.failbit); // RTE if input wrong datatype int n; cin >> n; vector<Point<double>> p(n); for (int i = 0; i < n; i++) { cin >> p[i].x >> p[i].y; } auto check = [&](double mid) -> bool { UF dsu(n); int comp = n; for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if ((p[i] - p[j]).dist() <= mid) { if (dsu.join(i, j)) comp--; } } } return comp == 1; }; double low = 0, high = 1e10; for (int ite = 0; ite < 100; ite++) { double mid = (low + high) / 2; if (check(mid)) high = mid; else low = mid; } cout << fixed << setprecision(10) << low; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
1 4.2591064316 -1.4305814994 |
correct output |
---|
0.00000000000000000000 |
user output |
---|
0.0000000000 |
Test 2
Verdict: ACCEPTED
input |
---|
2 -6.0847229043 -1.5324885688 -1.6396947713 -1.0447428951 |
correct output |
---|
4.47170783318572061639 |
user output |
---|
4.4717078332 |
Test 3
Verdict: ACCEPTED
input |
---|
2 -0.3451828704 -7.1873918490 1.0713060289 1.8791459872 |
correct output |
---|
9.17652162516311534299 |
user output |
---|
9.1765216252 |
Test 4
Verdict: ACCEPTED
input |
---|
3 4.2591064316 -1.4305814994 3.8176970288 4.3830061776 -0.1776213445 5.6005552105 |
correct output |
---|
5.83032108370083756695 |
user output |
---|
5.8303210837 |
Test 5
Verdict: ACCEPTED
input |
---|
3 -1.0847570211 7.2329426240 2.3665666348 -8.2915635928 -6.5499304506 -8.4795054694 |
correct output |
---|
15.90351936689602016951 |
user output |
---|
15.9035193669 |
Test 6
Verdict: ACCEPTED
input |
---|
4 -0.0065099865 -6.8175556290 -8.9288243166 -5.6345572909 -4.7044491466 -1.5514279091 1.0409756581 5.2858009044 |
correct output |
---|
8.93071128380134405655 |
user output |
---|
8.9307112838 |
Test 7
Verdict: ACCEPTED
input |
---|
4 -6.5835380846 -4.2392097853 -6.7150543624 -2.0586391194 -3.7243738734 -9.5714693167 -0.2547656922 8.6929691250 |
correct output |
---|
12.54322165726830064138 |
user output |
---|
12.5432216573 |
Test 8
Verdict: ACCEPTED
input |
---|
4 -6.3149870710 7.7035024848 4.0148832489 2.6391874051 -8.1980280145 -2.8164045396 7.7349470409 9.3888104114 |
correct output |
---|
11.50449946987819829780 |
user output |
---|
11.5044994699 |
Test 9
Verdict: ACCEPTED
input |
---|
4 3.1826102096 9.6315702959 9.7306184566 -9.6262882447 -5.8529365549 -5.2919807295 -4.2871937712 -0.2626979830 |
correct output |
---|
16.17508604096948732209 |
user output |
---|
16.1750860410 |
Test 10
Verdict: ACCEPTED
input |
---|
4 -0.3725599416 3.7535021503 7.1314057588 -0.3452105339 2.1019197385 -1.2159625143 -4.8936470874 0.0075031628 |
correct output |
---|
5.87134885646126597177 |
user output |
---|
5.8713488565 |
Test 11
Verdict: ACCEPTED
input |
---|
5 1.8568923303 6.8853148851 7.1589123998 6.9450347477 2.4712739299 -2.3123658325 -4.0493078929 -8.8657404813 ... |
correct output |
---|
9.21817744094991402444 |
user output |
---|
9.2181774409 |
Test 12
Verdict: ACCEPTED
input |
---|
5 9.9436961646 8.6511472274 -7.4375110446 9.9808103093 -5.2782204740 -2.0683854767 -2.2417851948 3.3949208089 ... |
correct output |
---|
11.50777035927174466248 |
user output |
---|
11.5077703593 |
Test 13
Verdict: ACCEPTED
input |
---|
5 -6.2983583685 8.6308172719 8.9546122195 -0.3050180737 -3.5892712724 -6.9114664880 3.9772537872 -7.6009891200 ... |
correct output |
---|
9.71303212730634494936 |
user output |
---|
9.7130321273 |
Test 14
Verdict: ACCEPTED
input |
---|
5 -8.5855023910 6.7989808494 -7.5734284134 1.3862265158 -1.2587611941 -9.6250397903 -9.1873852484 -5.0422339644 ... |
correct output |
---|
9.15779387365360776282 |
user output |
---|
9.1577938737 |
Test 15
Verdict: ACCEPTED
input |
---|
5 8.0124290984 -6.5460934977 7.1124189020 2.1807119656 1.9511241172 -7.1707165417 -5.5098814611 3.9684047876 ... |
correct output |
---|
12.74826702270330998704 |
user output |
---|
12.7482670227 |
Test 16
Verdict: ACCEPTED
input |
---|
5 -8.8963975840 6.6265568038 -2.7252620915 9.5888999566 -8.2035793155 -2.0652678674 -2.9172391409 -0.2672400301 ... |
correct output |
---|
13.00048104392330636930 |
user output |
---|
13.0004810439 |
Test 17
Verdict: ACCEPTED
input |
---|
5 8.9495215281 -5.8118726856 -8.7149078500 -2.5978119204 9.7005763562 -8.0105662272 2.1694723402 0.6079293528 ... |
correct output |
---|
11.34665189540580491293 |
user output |
---|
11.3466518954 |
Test 18
Verdict: ACCEPTED
input |
---|
5 -5.4532185007 -3.6205554438 9.5644579243 -0.8883018432 -3.8397446555 -4.7225831843 -8.2651312952 -1.6125557848 ... |
correct output |
---|
13.94182054837260448070 |
user output |
---|
13.9418205484 |
Test 19
Verdict: ACCEPTED
input |
---|
5 -9.7777112346 -5.2112085653 -2.4496604741 6.3292256907 -1.5529838240 2.2406666587 5.3212585879 -1.9614977231 ... |
correct output |
---|
11.09849473274371704085 |
user output |
---|
11.0984947327 |
Test 20
Verdict: ACCEPTED
input |
---|
5 -2.7107794769 -0.0173926842 -9.8491379968 -3.6755137605 -9.7335597820 7.5444241810 -7.2494636084 -7.2277343960 ... |
correct output |
---|
10.31990879400218362374 |
user output |
---|
10.3199087940 |
Test 21
Verdict: ACCEPTED
input |
---|
10 1.8568923303 6.8853148851 7.1589123998 6.9450347477 2.4712739299 -2.3123658325 -4.0493078929 -8.8657404813 ... |
correct output |
---|
8.43373300459665028398 |
user output |
---|
8.4337330046 |
Test 22
Verdict: ACCEPTED
input |
---|
10 9.9436961646 8.6511472274 -7.4375110446 9.9808103093 -5.2782204740 -2.0683854767 -2.2417851948 3.3949208089 ... |
correct output |
---|
8.30203528819313353593 |
user output |
---|
8.3020352882 |
Test 23
Verdict: ACCEPTED
input |
---|
10 -6.2983583685 8.6308172719 8.9546122195 -0.3050180737 -3.5892712724 -6.9114664880 3.9772537872 -7.6009891200 ... |
correct output |
---|
8.46970179011128996346 |
user output |
---|
8.4697017901 |
Test 24
Verdict: ACCEPTED
input |
---|
10 -8.5855023910 6.7989808494 -7.5734284134 1.3862265158 -1.2587611941 -9.6250397903 -9.1873852484 -5.0422339644 ... |
correct output |
---|
8.03457104643789539987 |
user output |
---|
8.0345710464 |
Test 25
Verdict: ACCEPTED
input |
---|
10 8.0124290984 -6.5460934977 7.1124189020 2.1807119656 1.9511241172 -7.1707165417 -5.5098814611 3.9684047876 ... |
correct output |
---|
8.40104919081107975529 |
user output |
---|
8.4010491908 |
Test 26
Verdict: ACCEPTED
input |
---|
10 -8.8963975840 6.6265568038 -2.7252620915 9.5888999566 -8.2035793155 -2.0652678674 -2.9172391409 -0.2672400301 ... |
correct output |
---|
6.83090893175365792417 |
user output |
---|
6.8309089318 |
Test 27
Verdict: ACCEPTED
input |
---|
10 8.9495215281 -5.8118726856 -8.7149078500 -2.5978119204 9.7005763562 -8.0105662272 2.1694723402 0.6079293528 ... |
correct output |
---|
10.24111977550903899992 |
user output |
---|
10.2411197755 |
Test 28
Verdict: ACCEPTED
input |
---|
10 -5.4532185007 -3.6205554438 9.5644579243 -0.8883018432 -3.8397446555 -4.7225831843 -8.2651312952 -1.6125557848 ... |
correct output |
---|
7.75719199582075191442 |
user output |
---|
7.7571919958 |
Test 29
Verdict: ACCEPTED
input |
---|
10 -9.7777112346 -5.2112085653 -2.4496604741 6.3292256907 -1.5529838240 2.2406666587 5.3212585879 -1.9614977231 ... |
correct output |
---|
8.05688489611421130090 |
user output |
---|
8.0568848961 |
Test 30
Verdict: ACCEPTED
input |
---|
10 -2.7107794769 -0.0173926842 -9.8491379968 -3.6755137605 -9.7335597820 7.5444241810 -7.2494636084 -7.2277343960 ... |
correct output |
---|
9.50770899513712303228 |
user output |
---|
9.5077089951 |
Test 31
Verdict: ACCEPTED
input |
---|
100 18.5689233033 68.8531488513 71.5891239980 69.4503474769 24.7127392992 -23.1236583252 -40.4930789286 -88.6574048134 ... |
correct output |
---|
45.82615853745645677006 |
user output |
---|
45.8261585375 |
Test 32
Verdict: ACCEPTED
input |
---|
100 99.4369616461 86.5114722736 -74.3751104455 99.8081030931 -52.7822047404 -20.6838547675 -22.4178519479 33.9492080894 ... |
correct output |
---|
35.50700204049589586708 |
user output |
---|
35.5070020405 |
Test 33
Verdict: ACCEPTED
input |
---|
100 -62.9835836852 86.3081727189 89.5461221947 -3.0501807371 -35.8927127244 -69.1146648801 39.7725378724 -76.0098911999 ... |
correct output |
---|
31.22345190290398834337 |
user output |
---|
31.2234519029 |
Test 34
Verdict: ACCEPTED
input |
---|
100 -85.8550239098 67.9898084937 -75.7342841341 13.8622651580 -12.5876119410 -96.2503979031 -91.8738524837 -50.4223396439 ... |
correct output |
---|
28.89162360331196992801 |
user output |
---|
28.8916236033 |
Test 35
Verdict: ACCEPTED
input |
---|
100 80.1242909845 -65.4609349767 71.1241890198 21.8071196561 19.5112411723 -71.7071654174 -55.0988146115 39.6840478762 ... |
correct output |
---|
30.00479071642544109597 |
user output |
---|
30.0047907164 |
Test 36
Verdict: ACCEPTED
input |
---|
100 -88.9639758402 66.2655680380 -27.2526209146 95.8889995664 -82.0357931550 -20.6526786735 -29.1723914088 -2.6724003014 ... |
correct output |
---|
38.79483709927152193866 |
user output |
---|
38.7948370993 |
Test 37
Verdict: ACCEPTED
input |
---|
100 89.4952152806 -58.1187268564 -87.1490785004 -25.9781192037 97.0057635618 -80.1056622716 21.6947234017 6.0792935276 ... |
correct output |
---|
34.76745343632208916709 |
user output |
---|
34.7674534363 |
Test 38
Verdict: ACCEPTED
input |
---|
100 -54.5321850071 -36.2055544378 95.6445792428 -8.8830184320 -38.3974465552 -47.2258318431 -82.6513129519 -16.1255578477 ... |
correct output |
---|
47.33751163277151602013 |
user output |
---|
47.3375116328 |
Test 39
Verdict: ACCEPTED
input |
---|
100 -97.7771123464 -52.1120856531 -24.4966047411 63.2922569071 -15.5298382401 22.4066665867 53.2125858790 -19.6149772311 ... |
correct output |
---|
27.44794402724227265142 |
user output |
---|
27.4479440272 |
Test 40
Verdict: ACCEPTED
input |
---|
100 -27.1077947686 -0.1739268423 -98.4913799681 -36.7551376049 -97.3355978196 75.4442418096 -72.4946360840 -72.2773439601 ... |
correct output |
---|
28.86385308540476819956 |
user output |
---|
28.8638530854 |
Test 41
Verdict: ACCEPTED
input |
---|
200 18568.9233033365 68853.1488513... |
correct output |
---|
26027.91880492172062666612 |
user output |
---|
26027.9188049217 |
Test 42
Verdict: ACCEPTED
input |
---|
200 99436.9616460531 86511.4722736... |
correct output |
---|
24738.66365623138931617575 |
user output |
---|
24738.6636562314 |
Test 43
Verdict: ACCEPTED
input |
---|
200 -62983.5836851972 86308.172718... |
correct output |
---|
23114.05959792925350093640 |
user output |
---|
23114.0595979293 |
Test 44
Verdict: ACCEPTED
input |
---|
200 -85855.0239097887 67989.808493... |
correct output |
---|
24449.05462058239773170953 |
user output |
---|
24449.0546205824 |
Test 45
Verdict: ACCEPTED
input |
---|
200 80124.2909844513 -65460.934976... |
correct output |
---|
24090.54761531628931514604 |
user output |
---|
24090.5476153163 |
Test 46
Verdict: ACCEPTED
input |
---|
200 -88963.9758401554 66265.568038... |
correct output |
---|
23439.53146829533727313333 |
user output |
---|
23439.5314682953 |
Test 47
Verdict: ACCEPTED
input |
---|
200 89495.2152805803 -58118.726856... |
correct output |
---|
29128.03468783543361553257 |
user output |
---|
29128.0346878354 |
Test 48
Verdict: ACCEPTED
input |
---|
200 -54532.1850070586 -36205.55443... |
correct output |
---|
24978.72415831473490044345 |
user output |
---|
24978.7241583147 |
Test 49
Verdict: ACCEPTED
input |
---|
200 -97777.1123464485 -52112.08565... |
correct output |
---|
21209.18600929237329211219 |
user output |
---|
21209.1860092924 |
Test 50
Verdict: ACCEPTED
input |
---|
200 -27107.7947686252 -173.9268423... |
correct output |
---|
23203.29193911443391939997 |
user output |
---|
23203.2919391144 |
Test 51
Verdict: ACCEPTED
input |
---|
500 18568.9233033365 68853.1488513... |
correct output |
---|
16841.08154772710746982511 |
user output |
---|
16841.0815477271 |
Test 52
Verdict: ACCEPTED
input |
---|
500 99436.9616460531 86511.4722736... |
correct output |
---|
13884.23860887098339489398 |
user output |
---|
13884.2386088710 |
Test 53
Verdict: ACCEPTED
input |
---|
500 -62983.5836851972 86308.172718... |
correct output |
---|
16913.31415478189355283689 |
user output |
---|
16913.3141547819 |
Test 54
Verdict: ACCEPTED
input |
---|
500 -85855.0239097887 67989.808493... |
correct output |
---|
16129.83510192776483815891 |
user output |
---|
16129.8351019278 |
Test 55
Verdict: ACCEPTED
input |
---|
500 80124.2909844513 -65460.934976... |
correct output |
---|
13611.19288194623884713508 |
user output |
---|
13611.1928819462 |
Test 56
Verdict: ACCEPTED
input |
---|
500 -88963.9758401554 66265.568038... |
correct output |
---|
14129.83398978742408491627 |
user output |
---|
14129.8339897874 |
Test 57
Verdict: ACCEPTED
input |
---|
500 89495.2152805803 -58118.726856... |
correct output |
---|
14531.53671287865778083415 |
user output |
---|
14531.5367128787 |
Test 58
Verdict: ACCEPTED
input |
---|
500 -54532.1850070586 -36205.55443... |
correct output |
---|
14387.11286249742570308996 |
user output |
---|
14387.1128624974 |
Test 59
Verdict: ACCEPTED
input |
---|
500 -97777.1123464485 -52112.08565... |
correct output |
---|
15400.66824492762415577118 |
user output |
---|
15400.6682449276 |
Test 60
Verdict: ACCEPTED
input |
---|
500 -27107.7947686252 -173.9268423... |
correct output |
---|
16119.06959734976690334918 |
user output |
---|
16119.0695973498 |
Test 61
Verdict: ACCEPTED
input |
---|
1000 18568.9233033365 68853.1488513... |
correct output |
---|
11324.85732396049615111622 |
user output |
---|
11324.8573239605 |
Test 62
Verdict: ACCEPTED
input |
---|
1000 99436.9616460531 86511.4722736... |
correct output |
---|
10665.82033665705907843346 |
user output |
---|
10665.8203366571 |
Test 63
Verdict: ACCEPTED
input |
---|
1000 -62983.5836851972 86308.172718... |
correct output |
---|
12182.40552864239620589615 |
user output |
---|
12182.4055286424 |
Test 64
Verdict: ACCEPTED
input |
---|
1000 -85855.0239097887 67989.808493... |
correct output |
---|
10851.63808946087635654010 |
user output |
---|
10851.6380894609 |
Test 65
Verdict: ACCEPTED
input |
---|
1000 80124.2909844513 -65460.934976... |
correct output |
---|
11745.88161026176816204014 |
user output |
---|
11745.8816102618 |