Submission details
Task:Zig Zag
Sender:aalto25k_002
Submission time:2025-11-12 17:49:43 +0200
Language:C++ (C++17)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.00 sdetails
#8ACCEPTED0.00 sdetails
#9ACCEPTED0.00 sdetails
#10ACCEPTED0.00 sdetails
#11ACCEPTED0.00 sdetails
#12ACCEPTED0.00 sdetails
#13ACCEPTED0.00 sdetails
#14ACCEPTED0.00 sdetails
#15ACCEPTED0.00 sdetails
#16ACCEPTED0.00 sdetails
#17ACCEPTED0.00 sdetails
#18ACCEPTED0.00 sdetails
#19ACCEPTED0.00 sdetails
#20ACCEPTED0.00 sdetails
#21ACCEPTED0.00 sdetails
#22ACCEPTED0.00 sdetails
#23ACCEPTED0.00 sdetails
#24ACCEPTED0.00 sdetails
#25ACCEPTED0.00 sdetails
#26ACCEPTED0.00 sdetails
#27ACCEPTED0.00 sdetails
#28ACCEPTED0.00 sdetails
#29ACCEPTED0.00 sdetails
#30ACCEPTED0.00 sdetails
#31ACCEPTED0.00 sdetails
#32ACCEPTED0.00 sdetails
#33ACCEPTED0.00 sdetails
#34ACCEPTED0.00 sdetails
#35ACCEPTED0.00 sdetails
#36ACCEPTED0.00 sdetails
#37ACCEPTED0.00 sdetails
#38ACCEPTED0.00 sdetails
#39ACCEPTED0.00 sdetails
#40ACCEPTED0.00 sdetails
#41ACCEPTED0.00 sdetails
#42ACCEPTED0.00 sdetails
#43ACCEPTED0.00 sdetails
#44ACCEPTED0.00 sdetails
#45ACCEPTED0.00 sdetails
#46ACCEPTED0.00 sdetails
#47ACCEPTED0.00 sdetails
#48ACCEPTED0.00 sdetails
#49ACCEPTED0.00 sdetails
#50ACCEPTED0.00 sdetails
#51ACCEPTED0.00 sdetails
#52ACCEPTED0.00 sdetails
#53ACCEPTED0.00 sdetails
#54ACCEPTED0.00 sdetails
#55ACCEPTED0.00 sdetails
#56ACCEPTED0.00 sdetails
#57ACCEPTED0.00 sdetails
#58ACCEPTED0.00 sdetails
#59ACCEPTED0.01 sdetails
#60ACCEPTED0.01 sdetails
#61ACCEPTED0.02 sdetails
#62ACCEPTED0.01 sdetails
#63ACCEPTED0.01 sdetails
#64ACCEPTED0.03 sdetails
#65ACCEPTED0.03 sdetails
#66ACCEPTED0.03 sdetails
#67ACCEPTED0.03 sdetails
#68ACCEPTED0.03 sdetails

Code

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef vector<ll> vl;
typedef pair<ll,ll> pl;


typedef long double C;
typedef complex<C> P;
#define X real()
#define Y imag()

#define sz(x) (ll)(x).size()

#define F first
#define S second
#define PB push_back
#define MP make_pair

#define REP(i,a,b) for (ll i = a; i < b; i++)

long double distance_point(P a, P b) {
    return norm(a-b);
}

int main() {
    ll n;
    cin >> n;

    P points[n];
    long double x, y;
    REP(i,0,n) {
        cin >> x >> y;

        P p = {x,y};
        points[i]= p;
        //points[i].Y = y;
    }

    vector<ll> output;
    bool visited[n] = {false};

    output.push_back(0);

    ll next = 0;
    ll left = n;
    ll best_j;
    while(left > 0) {
        ll max_dist = 0;
        visited[next] = true;

        REP(j,0,n) {
            if(visited[j]) continue;

            if(max_dist <= distance_point(points[next], points[j])) {
                max_dist = distance_point(points[next], points[j]);
                best_j = j;
            }
        }

        next = best_j;

        output.push_back(next);
        left -=1;
    }


    REP(i,0,n) {
        cout << output[i]+1 << " ";
    }

    
}

Test details

Test 1

Verdict: ACCEPTED

input
2
2 5
8 9

correct output
1 2 

user output
1 2 

Test 2

Verdict: ACCEPTED

input
3
3 9
8 7
9 9

correct output
1 3 2 

user output
1 3 2 

Test 3

Verdict: ACCEPTED

input
3
6 10
8 7
9 4

correct output
1 3 2 

user output
1 3 2 

Test 4

Verdict: ACCEPTED

input
3
1 2
2 6
9 9

correct output
1 3 2 

user output
1 3 2 

Test 5

Verdict: ACCEPTED

input
3
3 4
6 1
6 4

correct output
1 2 3 

user output
1 2 3 

Test 6

Verdict: ACCEPTED

input
3
2 9
3 2
6 9

correct output
1 2 3 

user output
1 2 3 

Test 7

Verdict: ACCEPTED

input
4
2 10
6 5
7 1
9 3

correct output
1 3 2 4 

user output
1 3 2 4 

Test 8

Verdict: ACCEPTED

input
4
1 5
2 3
3 8
8 5

correct output
1 4 2 3 

user output
1 4 2 3 

Test 9

Verdict: ACCEPTED

input
4
2 7
5 4
7 3
10 1

correct output
1 4 2 3 

user output
1 4 2 3 

Test 10

Verdict: ACCEPTED

input
4
1 5
4 3
4 8
10 3

correct output
1 4 3 2 

user output
1 4 3 2 

Test 11

Verdict: ACCEPTED

input
4
1 9
4 7
4 8
5 5

correct output
1 4 3 2 

user output
1 4 3 2 

Test 12

Verdict: ACCEPTED

input
4
1 6
3 2
4 9
9 4

correct output
1 4 3 2 

user output
1 4 3 2 

Test 13

Verdict: ACCEPTED

input
4
3 1
5 10
6 3
9 8

correct output
1 2 3 4 

user output
1 4 3 2 

Test 14

Verdict: ACCEPTED

input
4
1 7
6 6
8 6
9 3

correct output
1 4 2 3 

user output
1 4 2 3 

Test 15

Verdict: ACCEPTED

input
4
4 10
6 1
7 4
9 3

correct output
1 2 4 3 

user output
1 2 4 3 

Test 16

Verdict: ACCEPTED

input
4
1 9
6 4
7 3
8 3

correct output
1 4 2 3 

user output
1 4 2 3 

Test 17

Verdict: ACCEPTED

input
4
1 2
6 10
7 3
10 5

correct output
1 4 2 3 

user output
1 4 2 3 

Test 18

Verdict: ACCEPTED

input
4
4 7
9 5
9 9
10 5

correct output
1 4 3 2 

user output
1 4 3 2 

Test 19

Verdict: ACCEPTED

input
5
5 7
6 6
6 9
7 9
...

correct output
1 5 2 4 3 

user output
1 5 2 4 3 

Test 20

Verdict: ACCEPTED

input
5
1 2
2 3
4 10
5 10
...

correct output
1 5 2 4 3 

user output
1 5 2 4 3 

Test 21

Verdict: ACCEPTED

input
5
1 10
5 2
5 4
5 5
...

correct output
1 2 5 3 4 

user output
1 2 5 3 4 

Test 22

Verdict: ACCEPTED

input
5
3 2
6 1
6 6
8 9
...

correct output
1 4 2 3 5 

user output
1 4 2 5 3 

Test 23

Verdict: ACCEPTED

input
5
6 2
7 6
8 7
10 9
...

correct output
1 5 2 4 3 

user output
1 5 2 4 3 

Test 24

Verdict: ACCEPTED

input
5
3 1
3 4
5 1
9 9
...

correct output
1 5 3 4 2 

user output
1 5 3 4 2 

Test 25

Verdict: ACCEPTED

input
5
1 4
2 10
4 3
9 1
...

correct output
1 5 4 2 3 

user output
1 5 4 2 3 

Test 26

Verdict: ACCEPTED

input
5
1 3
5 10
8 4
8 5
...

correct output
1 5 2 3 4 

user output
1 5 2 3 4 

Test 27

Verdict: ACCEPTED

input
5
3 5
6 9
9 1
9 4
...

correct output
1 5 2 3 4 

user output
1 5 2 3 4 

Test 28

Verdict: ACCEPTED

input
5
1 4
2 1
2 4
5 1
...

correct output
1 5 2 3 4 

user output
1 5 2 4 3 

Test 29

Verdict: ACCEPTED

input
10
4 5
5 3
5 7
6 6
...

correct output
1 9 5 10 7 2 8 6 3 4 

user output
1 9 5 10 7 2 8 6 3 4 

Test 30

Verdict: ACCEPTED

input
10
1 2
1 4
2 3
2 4
...

correct output
1 10 2 8 3 6 4 9 7 5 

user output
1 10 3 8 2 9 4 6 7 5 

Test 31

Verdict: ACCEPTED

input
10
1 10
3 5
3 7
4 2
...

correct output
1 9 8 4 10 5 3 6 2 7 

user output
1 9 8 4 10 5 3 6 2 7 

Test 32

Verdict: ACCEPTED

input
10
1 1
2 1
3 2
3 3
...

correct output
1 8 2 10 3 9 5 6 7 4 

user output
1 8 2 10 3 9 5 6 7 4 

Test 33

Verdict: ACCEPTED

input
10
1 7
3 2
3 10
5 7
...

correct output
1 8 3 5 10 2 9 4 7 6 

user output
1 8 3 5 10 2 9 4 7 6 

Test 34

Verdict: ACCEPTED

input
10
2 9
3 1
3 4
3 10
...

correct output
1 5 10 2 9 3 4 8 6 7 

user output
1 5 10 2 9 3 4 8 6 7 

Test 35

Verdict: ACCEPTED

input
10
1 4
2 10
4 3
4 5
...

correct output
1 10 6 2 9 8 3 7 4 5 

user output
1 10 6 2 9 8 3 7 4 5 

Test 36

Verdict: ACCEPTED

input
10
1 3
1 5
3 1
5 6
...

correct output
1 10 2 8 5 3 9 6 4 7 

user output
1 10 2 8 5 3 9 6 4 7 

Test 37

Verdict: ACCEPTED

input
10
1 7
3 5
5 5
5 8
...

correct output
1 8 5 10 2 9 7 6 4 3 

user output
1 8 5 10 2 9 7 6 4 3 

Test 38

Verdict: ACCEPTED

input
10
1 4
2 1
2 4
3 2
...

correct output
1 10 5 7 3 9 2 6 4 8 

user output
1 10 5 7 3 9 2 6 8 4 

Test 39

Verdict: ACCEPTED

input
100
5041736 157240647
20175393 348043754
21461600 42077569
21590319 177103472
...

correct output
1 95 3 98 4 99 10 81 29 7 96 8...

user output
1 95 3 98 4 99 10 81 29 7 96 8...

Test 40

Verdict: ACCEPTED

input
100
122816 137572579
3081988 829722338
16987929 288837678
20795114 89789519
...

correct output
1 94 4 90 14 97 21 96 3 99 8 9...

user output
1 94 4 90 14 97 21 96 3 99 8 9...

Test 41

Verdict: ACCEPTED

input
100
13977261 381987546
27435119 390118206
27838076 590195590
29208319 801689376
...

correct output
1 100 9 94 14 77 12 99 2 97 7 ...

user output
1 100 9 94 14 77 12 99 2 97 7 ...

Test 42

Verdict: ACCEPTED

input
100
24822301 241650433
25750352 822299809
32079340 156090008
55262494 100450154
...

correct output
1 100 4 99 3 87 11 77 12 64 20...

user output
1 100 4 99 3 87 11 77 12 64 20...

Test 43

Verdict: ACCEPTED

input
100
5539596 212262730
9648746 657694080
20427661 42713839
23212898 52113136
...

correct output
1 94 3 91 4 88 7 81 14 75 28 6...

user output
1 94 3 91 4 88 7 81 14 75 28 6...

Test 44

Verdict: ACCEPTED

input
100
1763267 741881723
6157975 278203924
21895078 521944783
24624220 604717980
...

correct output
1 100 16 97 24 77 23 94 15 70 ...

user output
1 100 16 97 24 77 23 94 15 70 ...

Test 45

Verdict: ACCEPTED

input
100
39308105 838098679
44426603 836947476
51198751 708680148
63176060 437557708
...

correct output
1 99 2 96 5 100 3 97 11 71 25 ...

user output
1 99 2 96 5 100 3 97 11 71 25 ...

Test 46

Verdict: ACCEPTED

input
100
26735342 806125341
42569672 497138595
70798611 724056782
77364316 450297483
...

correct output
1 97 6 100 3 98 10 94 25 78 41...

user output
1 97 6 100 3 98 10 94 25 78 41...

Test 47

Verdict: ACCEPTED

input
100
8921056 150015577
14394691 72903212
22850648 457512559
27825976 466880371
...

correct output
1 81 5 99 2 83 11 54 96 12 88 ...

user output
1 81 5 99 2 83 11 54 96 12 88 ...

Test 48

Verdict: ACCEPTED

input
100
4900393 476861950
8745675 461759249
11139168 391337048
37347058 286446807
...

correct output
1 97 6 87 24 84 17 93 25 94 5 ...

user output
1 97 6 87 24 84 17 93 25 94 5 ...

Test 49

Verdict: ACCEPTED

input
200
5041736 157240647
12577900 821317682
20175393 348043754
21461600 42077569
...

correct output
1 186 4 183 15 195 5 196 20 19...

user output
1 186 4 183 15 195 5 196 20 19...

Test 50

Verdict: ACCEPTED

input
200
122816 137572579
3081988 829722338
8592846 688876470
16987929 288837678
...

correct output
1 186 6 200 9 182 31 177 29 19...

user output
1 186 6 200 9 182 31 177 29 19...

Test 51

Verdict: ACCEPTED

input
200
5007418 457386905
9071363 177024747
11005899 132698
13977261 381987546
...

correct output
1 197 3 180 5 195 6 199 19 166...

user output
1 197 3 180 5 195 6 199 19 166...

Test 52

Verdict: ACCEPTED

input
200
24822301 241650433
25750352 822299809
27410345 98925543
32079340 156090008
...

correct output
1 198 5 187 3 197 6 170 19 151...

user output
1 198 5 187 3 197 6 170 19 151...

Test 53

Verdict: ACCEPTED

input
200
4210032 63222017
5539596 212262730
9648746 657694080
17149028 626575097
...

correct output
1 191 6 186 7 181 13 159 11 16...

user output
1 191 6 186 7 181 13 159 11 16...

Test 54

Verdict: ACCEPTED

input
200
1763267 741881723
6157975 278203924
13795513 320861635
21895078 521944783
...

correct output
1 200 28 182 41 187 40 192 18 ...

user output
1 200 28 182 41 187 40 192 18 ...

Test 55

Verdict: ACCEPTED

input
200
8476925 141485410
8505126 166581265
12461681 74039645
15361440 452562087
...

correct output
1 192 3 196 18 186 2 177 28 18...

user output
1 192 3 196 18 186 2 177 28 18...

Test 56

Verdict: ACCEPTED

input
200
1991410 698069978
7670036 191583196
8822402 685559485
11360091 77004696
...

correct output
1 198 6 192 14 199 7 200 3 194...

user output
1 198 6 192 14 199 7 200 3 194...

Test 57

Verdict: ACCEPTED

input
200
4472345 555680129
7737822 978991670
8921056 150015577
14394691 72903212
...

correct output
1 191 2 188 24 177 22 200 8 18...

user output
1 191 2 188 24 177 22 200 8 18...

Test 58

Verdict: ACCEPTED

input
200
366794 310416436
4900393 476861950
8745675 461759249
11139168 391337048
...

correct output
1 197 13 193 7 187 39 172 32 1...

user output
1 197 13 193 7 187 39 172 32 1...

Test 59

Verdict: ACCEPTED

input
1000
4982121 854709206
5051980 969850608
6610770 110841534
7756396 54539209
...

correct output
1 933 2 989 10 938 11 977 45 9...

user output
1 933 2 989 10 938 11 977 45 9...

Test 60

Verdict: ACCEPTED

input
1000
692639 597387122
870901 527592476
3407540 258414659
3706190 578214810
...

correct output
1 987 30 901 17 997 81 942 82 ...

user output
1 987 30 901 17 997 81 942 82 ...

Test 61

Verdict: ACCEPTED

input
1000
52022 846049438
151015 375423447
798369 995844330
1351954 659601047
...

correct output
1 997 3 944 28 957 6 998 23 90...

user output
1 997 3 944 28 957 6 998 23 90...

Test 62

Verdict: ACCEPTED

input
1000
1296052 600889338
1645696 768715355
2692564 473274745
3499475 38421523
...

correct output
1 991 59 989 9 958 13 954 80 9...

user output
1 991 59 989 9 958 13 954 80 9...

Test 63

Verdict: ACCEPTED

input
1000
1126577 499684443
1256131 518722321
5616399 179078305
7506590 750644416
...

correct output
1 993 32 934 82 982 65 913 29 ...

user output
1 993 32 934 82 982 65 913 29 ...

Test 64

Verdict: ACCEPTED

input
2000
40804 71218080
59095 459895029
423473 9299604
685308 815211163
...

correct output
1 1989 3 1970 60 1943 34 1941 ...

user output
1 1989 3 1970 60 1943 34 1941 ...

Test 65

Verdict: ACCEPTED

input
2000
1408858 277110806
2161135 364884754
2812466 979975883
4200717 277590999
...

correct output
1 1975 45 1898 108 1892 134 19...

user output
1 1975 45 1898 108 1892 134 19...

Test 66

Verdict: ACCEPTED

input
2000
1709459 406796814
1857492 878587442
2005566 168482214
3426573 973328677
...

correct output
1 2000 31 1928 12 1994 41 1940...

user output
1 2000 31 1928 12 1994 41 1940...

Test 67

Verdict: ACCEPTED

input
2000
554335 614887580
2154289 832986059
2227123 110013552
2614185 311227898
...

correct output
1 1977 10 1981 33 1908 34 1978...

user output
1 1977 10 1981 33 1908 34 1978...

Test 68

Verdict: ACCEPTED

input
2000
890991 100455230
1036021 428733862
1938719 436899661
2001873 863975225
...

correct output
1 1998 24 1999 48 1994 53 1950...

user output
1 1998 24 1999 48 1994 53 1950...