A46 - Heuristic 1
Editorial
/
Time Limit: 1 sec / Memory Limit: 1024 MB
配点: 1000 点
問題文
二次元平面上に N 個の都市があり、1 から N までの番号が付けられています。
都市 i は座標 (X_i, Y_i) にあり、都市 i から都市 j までの距離は \sqrt{(X_i-X_j)^2+(Y_i-Y_j)^2} です。
都市 1 から出発し、すべての都市を一度ずつ通った後、都市 1 へ戻ってくる経路のうち、合計距離ができるだけ短いものを出力してください。
制約
- N=150
- 0 \leq X_i, Y_i \leq 1000
入力
入力は以下の形式で標準入力から与えられます。
N X_1 Y_1 : X_N Y_N
出力
N+1 行にわたって、通った都市の番号を出力してください。
特に、1 行目と N+1 行目は 1
である必要があります。
詳しくは入力例・出力例を参照してください。
得点
各テストケースに対して、以下のように得点が定められます。ただし、合計距離を D とします。
- 出力が条件を満たさない場合:0 点
- 出力が条件を満たす場合:\lfloor 10^6 \div D \rfloor 点
全部で 50 個のテストケースがあり、最終的な得点はそれらの合計となります。
入力データ生成方法
すべての採点用入力データは、以下の手順で生成されています。
- X_i は 0 以上 1000 以下の整数の中から一様ランダムに選ばれる
- Y_i は 0 以上 1000 以下の整数の中から一様ランダムに選ばれる
入力例 1
7 1 1 4 1 2 5 3 4 3 2 4 2 5 5
出力例 1
1 2 6 7 3 4 5 1
これは説明用のテストケースであり、制約を満たしていない(採点用テストケースに含まれない)ことに注意してください。
入力例 2
150 860 284 397 996 481 973 529 426 257 308 770 955 858 574 268 891 905 659 521 14 290 700 864 329 569 774 152 841 548 670 838 815 912 87 777 360 59 851 594 462 978 711 705 534 757 64 63 53 236 938 91 561 259 626 170 538 999 126 376 591 810 964 526 981 410 798 535 728 395 708 333 856 590 719 375 208 382 790 340 613 340 2 530 351 439 526 2 828 44 459 300 907 31 980 29 26 759 162 437 303 55 787 638 514 53 68 46 114 395 716 71 732 292 844 584 305 521 619 402 821 398 220 55 375 675 399 484 33 178 356 532 929 144 960 793 772 430 865 692 818 431 707 414 674 819 760 527 653 863 698 422 504 762 698 808 479 534 3 423 715 700 125 557 545 20 1000 218 537 75 372 313 985 457 463 365 866 399 477 205 51 484 719 363 766 666 813 307 335 513 208 495 417 140 115 225 731 397 516 665 409 402 430 217 649 446 848 696 307 224 823 177 258 305 3 526 329 654 116 268 160 936 529 228 853 260 866 838 691 53 543 28 32 984 775 889 746 382 91 413 691 595 522 61 667 105 242 258 346 927 794 624 337 995 647 315 102 901 22 858 738 13 692 238 741 388 305 817 307 458 793 486 15 968 875 863 36 967 493 463 539 493 662 910 83 253 343 212 410 564 332 624 77 659 468 945 707 498 227 952 2
出力例 2
1 12 134 18 104 126 58 145 108 42 96 4 20 121 52 147 100 63 22 78 7 111 139 127 21 148 9 75 114 130 118 125 117 137 16 73 68 77 70 93 13 34 91 71 80 120 72 35 55 92 39 33 60 103 69 88 36 57 113 8 46 25 112 105 14 19 44 51 56 122 131 26 115 45 62 85 65 144 143 124 5 94 133 50 61 38 119 128 110 90 97 54 53 24 116 48 123 106 28 84 27 102 98 132 11 40 30 99 76 43 140 87 89 101 82 59 74 15 141 37 135 66 32 3 2 86 67 47 83 6 31 149 95 109 81 49 23 138 129 150 142 17 29 146 79 10 136 64 41 107 1