CSES - Aalto Competitive Programming 2024 - wk10 - Mon - Results
Submission details
Task:6G network
Sender:Rasse
Submission time:2024-11-11 16:54:18 +0200
Language:C++ (C++17)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#20.00 sdetails
#30.00 sdetails
#40.00 sdetails
#50.00 sdetails
#60.00 sdetails
#70.00 sdetails
#80.00 sdetails
#90.00 sdetails
#100.00 sdetails
#110.00 sdetails
#120.00 sdetails
#130.00 sdetails
#140.00 sdetails
#150.00 sdetails
#160.00 sdetails
#170.00 sdetails
#180.00 sdetails
#190.00 sdetails
#200.00 sdetails
#210.00 sdetails
#220.00 sdetails
#230.00 sdetails
#240.00 sdetails
#250.00 sdetails
#260.00 sdetails
#270.00 sdetails
#280.00 sdetails
#290.00 sdetails
#300.00 sdetails
#310.02 sdetails
#320.02 sdetails
#330.03 sdetails
#340.02 sdetails
#350.02 sdetails
#360.02 sdetails
#370.02 sdetails
#380.02 sdetails
#390.02 sdetails
#400.02 sdetails
#410.07 sdetails
#420.08 sdetails
#430.07 sdetails
#440.07 sdetails
#450.07 sdetails
#460.07 sdetails
#470.07 sdetails
#480.07 sdetails
#490.07 sdetails
#500.07 sdetails
#510.43 sdetails
#520.44 sdetails
#530.44 sdetails
#540.44 sdetails
#550.44 sdetails
#560.45 sdetails
#570.44 sdetails
#580.43 sdetails
#590.44 sdetails
#600.46 sdetails
#611.74 sdetails
#621.76 sdetails
#631.76 sdetails
#641.75 sdetails
#651.77 sdetails

Compiler report

input/code.cpp: In function 'void solve()':
input/code.cpp:63:23: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::complex<long double> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   63 |     for (int i = 0; i < points.size(); i++)
      |                     ~~^~~~~~~~~~~~~~~
input/code.cpp:65:29: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::complex<long double> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   65 |         for (int j = i+1; j < points.size(); j++)
      |                           ~~^~~~~~~~~~~~~~~
input/code.cpp:81:23: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::tuple<long double, long double, long double> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   81 |     for (int i = 0; i < data.size(); i++)
      |                     ~~^~~~~~~~~~~~~

Code

#include <iostream>
#include <vector>
#include <array>
#include <string>
#include <algorithm>
#include <numeric>
#include <unordered_map>
#include <unordered_set>
#include <queue>
#include <climits>
#include <cmath>
#include <functional>
#include <type_traits>
#include <fstream>
#include <bitset>
#include <complex>
#include <iomanip>
 
#define int long long
using namespace std;
 
//#define cross(x, y) ((x).real()*(y).imag()-(x).imag()*(y).real()) 
#define cross(x, y) (((x)*conj(y)).imag())
#define sign(v) ((0 < (v)) - ((v) < 0))

int link[1000000];
int siz[1000000];

int find(int x) {
    while (x != link[x]) x = link[x];
    return x;
}

bool same(int a, int b) {
    return find(a) == find(b);
}

void unite(int a, int b) {
    a = find(a);
    b = find(b);
    if (siz[a] < siz[b]) swap(a,b);
    siz[a] += siz[b];
    link[b] = a;
}
void solve()
{
    int n;
    cin >> n;
 
    for (int i = 1; i <= n; i++) link[i] = i;
    for (int i = 1; i <= n; i++) siz[i] = 1;

    vector<complex<long double>> points(n);
    for (int i = 0; i < n; i++)
    {
        long double a, b;
        cin >> a >> b;
        points[i] = {a, b};
    }

    vector<tuple<long double, long double, long double>> data;
    data.reserve(n*n);
    for (int i = 0; i < points.size(); i++)
    {
        for (int j = i+1; j < points.size(); j++)
        {
            //long double maxVal = (points[i].real() - points[j].real()) * (points[i].real() - points[j].real()) + (points[i].imag() - points[j].imag()) * (points[i].imag() - points[j].imag());
            //long double dist = sqrt(maxVal);
            long double xD = abs(points[i].real() - points[j].real());
            long double yD = abs(points[i].imag() - points[j].imag());
            long double dist = sqrt(xD) * sqrt(yD) * sqrt(xD/yD + yD/xD);
            cout << "DIST " << dist << endl;
            data.push_back({dist, i, j});
            //data.push_back({maxVal, i, j});
        }
    }
    sort(data.begin(), data.end());
 
    int c = n;
    long double last = 0;
    for (int i = 0; i < data.size(); i++)
    {
        if (find(get<1>(data[i])) == find(get<2>(data[i])))
            continue;
        unite(get<1>(data[i]), get<2>(data[i]));
        c--;
        last = get<0>(data[i]);
        if (c == 1)
            break;
    }
    cout << last;//sqrt(last);
    
}
 
 
signed main()
{
    ios::sync_with_stdio(0);
    cout.precision(25);
    //setprecision(10);
    //cin.tie(0);
 
    int t = 1;
 
    //cin >> t;
    //ifstream f("testcase.txt");
    //cin.rdbuf(f.rdbuf());
 
    for (int i = 0; i < t; i++)
        solve();
}

Test details

Test 1

Verdict: ACCEPTED

input
1
4.2591064316 -1.4305814994

correct output
0.00000000000000000000

user output
0

Test 2

Verdict:

input
2
-6.0847229043 -1.5324885688
-1.6396947713 -1.0447428951

correct output
4.47170783318572061639

user output
DIST 4.47170783318572061682677...

Test 3

Verdict:

input
2
-0.3451828704 -7.1873918490
1.0713060289 1.8791459872

correct output
9.17652162516311534299

user output
DIST 9.17652162516311534299490...

Test 4

Verdict:

input
3
4.2591064316 -1.4305814994
3.8176970288 4.3830061776
-0.1776213445 5.6005552105

correct output
5.83032108370083756695

user output
DIST 5.83032108370083756694948...
Truncated

Test 5

Verdict:

input
3
-1.0847570211 7.2329426240
2.3665666348 -8.2915635928
-6.5499304506 -8.4795054694

correct output
15.90351936689602016951

user output
DIST 15.9035193668960201703738...
Truncated

Test 6

Verdict:

input
4
-0.0065099865 -6.8175556290
-8.9288243166 -5.6345572909
-4.7044491466 -1.5514279091
1.0409756581 5.2858009044

correct output
8.93071128380134405655

user output
DIST 9.00039877300195925377557...
Truncated

Test 7

Verdict:

input
4
-6.5835380846 -4.2392097853
-6.7150543624 -2.0586391194
-3.7243738734 -9.5714693167
-0.2547656922 8.6929691250

correct output
12.54322165726830064138

user output
DIST 2.18453312181572019217389
DIST 6.05043896728270995909182...
Truncated

Test 8

Verdict:

input
4
-6.3149870710 7.7035024848
4.0148832489 2.6391874051
-8.1980280145 -2.8164045396
7.7349470409 9.3888104114

correct output
11.50449946987819829780

user output
DIST 11.5044994698781983004029...
Truncated

Test 9

Verdict:

input
4
3.1826102096 9.6315702959
9.7306184566 -9.6262882447
-5.8529365549 -5.2919807295
-4.2871937712 -0.2626979830

correct output
16.17508604096948732209

user output
DIST 20.3406373443051281119098...
Truncated

Test 10

Verdict:

input
4
-0.3725599416 3.7535021503
7.1314057588 -0.3452105339
2.1019197385 -1.2159625143
-4.8936470874 0.0075031628

correct output
5.87134885646126597177

user output
DIST 8.55037700340760597420702...
Truncated

Test 11

Verdict:

input
5
1.8568923303 6.8853148851
7.1589123998 6.9450347477
2.4712739299 -2.3123658325
-4.0493078929 -8.8657404813
...

correct output
9.21817744094991402444

user output
DIST 5.30235638932067142791923...
Truncated

Test 12

Verdict:

input
5
9.9436961646 8.6511472274
-7.4375110446 9.9808103093
-5.2782204740 -2.0683854767
-2.2417851948 3.3949208089
...

correct output
11.50777035927174466248

user output
DIST 17.4319926560480703593702...
Truncated

Test 13

Verdict:

input
5
-6.2983583685 8.6308172719
8.9546122195 -0.3050180737
-3.5892712724 -6.9114664880
3.9772537872 -7.6009891200
...

correct output
9.71303212730634494936

user output
DIST 17.6777335957431867043132...
Truncated

Test 14

Verdict:

input
5
-8.5855023910 6.7989808494
-7.5734284134 1.3862265158
-1.2587611941 -9.6250397903
-9.1873852484 -5.0422339644
...

correct output
9.15779387365360776282

user output
DIST 5.50656001620255342076173...
Truncated

Test 15

Verdict:

input
5
8.0124290984 -6.5460934977
7.1124189020 2.1807119656
1.9511241172 -7.1707165417
-5.5098814611 3.9684047876
...

correct output
12.74826702270330998704

user output
DIST 8.77309249625847124062078
DIST 6.09340397661403689478359...
Truncated

Test 16

Verdict:

input
5
-8.8963975840 6.6265568038
-2.7252620915 9.5888999566
-8.2035793155 -2.0652678674
-2.9172391409 -0.2672400301
...

correct output
13.00048104392330636930

user output
DIST 6.84531885464324164934993...
Truncated

Test 17

Verdict:

input
5
8.9495215281 -5.8118726856
-8.7149078500 -2.5978119204
9.7005763562 -8.0105662272
2.1694723402 0.6079293528
...

correct output
11.34665189540580491293

user output
DIST 17.9544493609879432099996...
Truncated

Test 18

Verdict:

input
5
-5.4532185007 -3.6205554438
9.5644579243 -0.8883018432
-3.8397446555 -4.7225831843
-8.2651312952 -1.6125557848
...

correct output
13.94182054837260448070

user output
DIST 15.2642004357906819556403...
Truncated

Test 19

Verdict:

input
5
-9.7777112346 -5.2112085653
-2.4496604741 6.3292256907
-1.5529838240 2.2406666587
5.3212585879 -1.9614977231
...

correct output
11.09849473274371704085

user output
DIST 13.6704773422701996712577...
Truncated

Test 20

Verdict:

input
5
-2.7107794769 -0.0173926842
-9.8491379968 -3.6755137605
-9.7335597820 7.5444241810
-7.2494636084 -7.2277343960
...

correct output
10.31990879400218362374

user output
DIST 8.02109794027595633149341...
Truncated

Test 21

Verdict:

input
10
1.8568923303 6.8853148851
7.1589123998 6.9450347477
2.4712739299 -2.3123658325
-4.0493078929 -8.8657404813
...

correct output
8.43373300459665028398

user output
DIST 5.30235638932067142791923...
Truncated

Test 22

Verdict:

input
10
9.9436961646 8.6511472274
-7.4375110446 9.9808103093
-5.2782204740 -2.0683854767
-2.2417851948 3.3949208089
...

correct output
8.30203528819313353593

user output
DIST 17.4319926560480703593702...
Truncated

Test 23

Verdict:

input
10
-6.2983583685 8.6308172719
8.9546122195 -0.3050180737
-3.5892712724 -6.9114664880
3.9772537872 -7.6009891200
...

correct output
8.46970179011128996346

user output
DIST 17.6777335957431867043132...
Truncated

Test 24

Verdict:

input
10
-8.5855023910 6.7989808494
-7.5734284134 1.3862265158
-1.2587611941 -9.6250397903
-9.1873852484 -5.0422339644
...

correct output
8.03457104643789539987

user output
DIST 5.50656001620255342076173...
Truncated

Test 25

Verdict:

input
10
8.0124290984 -6.5460934977
7.1124189020 2.1807119656
1.9511241172 -7.1707165417
-5.5098814611 3.9684047876
...

correct output
8.40104919081107975529

user output
DIST 8.77309249625847124062078
DIST 6.09340397661403689478359...
Truncated

Test 26

Verdict:

input
10
-8.8963975840 6.6265568038
-2.7252620915 9.5888999566
-8.2035793155 -2.0652678674
-2.9172391409 -0.2672400301
...

correct output
6.83090893175365792417

user output
DIST 6.84531885464324164934993...
Truncated

Test 27

Verdict:

input
10
8.9495215281 -5.8118726856
-8.7149078500 -2.5978119204
9.7005763562 -8.0105662272
2.1694723402 0.6079293528
...

correct output
10.24111977550903899992

user output
DIST 17.9544493609879432099996...
Truncated

Test 28

Verdict:

input
10
-5.4532185007 -3.6205554438
9.5644579243 -0.8883018432
-3.8397446555 -4.7225831843
-8.2651312952 -1.6125557848
...

correct output
7.75719199582075191442

user output
DIST 15.2642004357906819556403...
Truncated

Test 29

Verdict:

input
10
-9.7777112346 -5.2112085653
-2.4496604741 6.3292256907
-1.5529838240 2.2406666587
5.3212585879 -1.9614977231
...

correct output
8.05688489611421130090

user output
DIST 13.6704773422701996712577...
Truncated

Test 30

Verdict:

input
10
-2.7107794769 -0.0173926842
-9.8491379968 -3.6755137605
-9.7335597820 7.5444241810
-7.2494636084 -7.2277343960
...

correct output
9.50770899513712303228

user output
DIST 8.02109794027595633149341...
Truncated

Test 31

Verdict:

input
100
18.5689233033 68.8531488513
71.5891239980 69.4503474769
24.7127392992 -23.1236583252
-40.4930789286 -88.6574048134
...

correct output
45.82615853745645677006

user output
DIST 53.0235638929022281493064...
Truncated

Test 32

Verdict:

input
100
99.4369616461 86.5114722736
-74.3751104455 99.8081030931
-52.7822047404 -20.6838547675
-22.4178519479 33.9492080894
...

correct output
35.50700204049589586708

user output
DIST 174.31992656012000751653
DIST 186.176026262377177070139...
Truncated

Test 33

Verdict:

input
100
-62.9835836852 86.3081727189
89.5461221947 -3.0501807371
-35.8927127244 -69.1146648801
39.7725378724 -76.0098911999
...

correct output
31.22345190290398834337

user output
DIST 176.777335957345583541955...
Truncated

Test 34

Verdict:

input
100
-85.8550239098 67.9898084937
-75.7342841341 13.8622651580
-12.5876119410 -96.2503979031
-91.8738524837 -50.4223396439
...

correct output
28.89162360331196992801

user output
DIST 55.0656001616755065124209...
Truncated

Test 35

Verdict:

input
100
80.1242909845 -65.4609349767
71.1241890198 21.8071196561
19.5112411723 -71.7071654174
-55.0988146115 39.6840478762
...

correct output
30.00479071642544109597

user output
DIST 87.7309249624575789028302...
Truncated

Test 36

Verdict:

input
100
-88.9639758402 66.2655680380
-27.2526209146 95.8889995664
-82.0357931550 -20.6526786735
-29.1723914088 -2.6724003014
...

correct output
38.79483709927152193866

user output
DIST 68.4531885471464254036555...
Truncated

Test 37

Verdict:

input
100
89.4952152806 -58.1187268564
-87.1490785004 -25.9781192037
97.0057635618 -80.1056622716
21.6947234017 6.0792935276
...

correct output
34.76745343632208916709

user output
DIST 179.544493610004740474783...
Truncated

Test 38

Verdict:

input
100
-54.5321850071 -36.2055544378
95.6445792428 -8.8830184320
-38.3974465552 -47.2258318431
-82.6513129519 -16.1255578477
...

correct output
47.33751163277151602013

user output
DIST 152.642004357772635120271...
Truncated

Test 39

Verdict:

input
100
-97.7771123464 -52.1120856531
-24.4966047411 63.2922569071
-15.5298382401 22.4066665867
53.2125858790 -19.6149772311
...

correct output
27.44794402724227265142

user output
DIST 136.704773423031648860170...
Truncated

Test 40

Verdict:

input
100
-27.1077947686 -0.1739268423
-98.4913799681 -36.7551376049
-97.3355978196 75.4442418096
-72.4946360840 -72.2773439601
...

correct output
28.86385308540476819956

user output
DIST 80.2109794030221122593249...
Truncated

Test 41

Verdict:

input
200
18568.9233033365 68853.1488513...

correct output
26027.91880492172062666612

user output
DIST 53023.5638928311300581697...
Truncated

Test 42

Verdict:

input
200
99436.9616460531 86511.4722736...

correct output
24738.66365623138931617575

user output
DIST 174319.926560105951011792...
Truncated

Test 43

Verdict:

input
200
-62983.5836851972 86308.172718...

correct output
23114.05959792925350093640

user output
DIST 176777.335957381171780866...
Truncated

Test 44

Verdict:

input
200
-85855.0239097887 67989.808493...

correct output
24449.05462058239773170953

user output
DIST 55065.6001616346813349878...
Truncated

Test 45

Verdict:

input
200
80124.2909844513 -65460.934976...

correct output
24090.54761531628931514604

user output
DIST 87730.9249624762965353852...
Truncated

Test 46

Verdict:

input
200
-88963.9758401554 66265.568038...

correct output
23439.53146829533727313333

user output
DIST 68453.1885470519636598396...
Truncated

Test 47

Verdict:

input
200
89495.2152805803 -58118.726856...

correct output
29128.03468783543361553257

user output
DIST 179544.493609986495499697...
Truncated

Test 48

Verdict:

input
200
-54532.1850070586 -36205.55443...

correct output
24978.72415831473490044345

user output
DIST 152642.004357772707095364...
Truncated

Test 49

Verdict:

input
200
-97777.1123464485 -52112.08565...

correct output
21209.18600929237329211219

user output
DIST 136704.773423049983904320...
Truncated

Test 50

Verdict:

input
200
-27107.7947686252 -173.9268423...

correct output
23203.29193911443391939997

user output
DIST 80210.9794030054355431502...
Truncated

Test 51

Verdict:

input
500
18568.9233033365 68853.1488513...

correct output
16841.08154772710746982511

user output
DIST 53023.5638928311300581697...
Truncated

Test 52

Verdict:

input
500
99436.9616460531 86511.4722736...

correct output
13884.23860887098339489398

user output
DIST 174319.926560105951011792...
Truncated

Test 53

Verdict:

input
500
-62983.5836851972 86308.172718...

correct output
16913.31415478189355283689

user output
DIST 176777.335957381171780866...
Truncated

Test 54

Verdict:

input
500
-85855.0239097887 67989.808493...

correct output
16129.83510192776483815891

user output
DIST 55065.6001616346813349878...
Truncated

Test 55

Verdict:

input
500
80124.2909844513 -65460.934976...

correct output
13611.19288194623884713508

user output
DIST 87730.9249624762965353852...
Truncated

Test 56

Verdict:

input
500
-88963.9758401554 66265.568038...

correct output
14129.83398978742408491627

user output
DIST 68453.1885470519636598396...
Truncated

Test 57

Verdict:

input
500
89495.2152805803 -58118.726856...

correct output
14531.53671287865778083415

user output
DIST 179544.493609986495499697...
Truncated

Test 58

Verdict:

input
500
-54532.1850070586 -36205.55443...

correct output
14387.11286249742570308996

user output
DIST 152642.004357772707095364...
Truncated

Test 59

Verdict:

input
500
-97777.1123464485 -52112.08565...

correct output
15400.66824492762415577118

user output
DIST 136704.773423049983904320...
Truncated

Test 60

Verdict:

input
500
-27107.7947686252 -173.9268423...

correct output
16119.06959734976690334918

user output
DIST 80210.9794030054355431502...
Truncated

Test 61

Verdict:

input
1000
18568.9233033365 68853.1488513...

correct output
11324.85732396049615111622

user output
DIST 53023.5638928311300581697...
Truncated

Test 62

Verdict:

input
1000
99436.9616460531 86511.4722736...

correct output
10665.82033665705907843346

user output
DIST 174319.926560105951011792...
Truncated

Test 63

Verdict:

input
1000
-62983.5836851972 86308.172718...

correct output
12182.40552864239620589615

user output
DIST 176777.335957381171780866...
Truncated

Test 64

Verdict:

input
1000
-85855.0239097887 67989.808493...

correct output
10851.63808946087635654010

user output
DIST 55065.6001616346813349878...
Truncated

Test 65

Verdict:

input
1000
80124.2909844513 -65460.934976...

correct output
11745.88161026176816204014

user output
DIST 87730.9249624762965353852...
Truncated