Submission #73932292
Source Code Expand
use proconio::input;
fn main() {
input! {
n: usize,
coords: [(usize, usize); n],
}
let mut points: Vec<(usize, usize, usize)> = coords
.into_iter()
.enumerate()
.map(|(i, (x, y))| (x, y, i + 1))
.collect();
points.sort_by_key(|k| k.0);
let block_size = (n as f64).sqrt() as usize + 1;
let mut path: Vec<usize> = Vec::with_capacity(n);
let mut i = 0;
let mut ascending = true;
while i < n {
let end = (i + block_size).min(n);
let mut block: Vec<(usize, usize, usize)> = points[i..end].to_vec();
if ascending {
block.sort_by_key(|k| k.1); // Y 昇順
} else {
block.sort_by(|a, b| b.1.cmp(&a.1)); // Y 降順
}
for p in block {
path.push(p.2);
}
ascending = !ascending;
i = end;
}
let start_idx = path.iter().position(|&x| x == 1).unwrap();
let mut final_path = Vec::with_capacity(n);
for k in 0..n {
final_path.push(path[(start_idx + k) % n]);
}
println!(
"{}",
final_path
.iter()
.map(|x| x.to_string())
.collect::<Vec<String>>()
.join(" ")
);
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Authentic Traveling Salesman Problem |
| User | memoka |
| Language | Rust (rustc 1.89.0) |
| Score | 525 |
| Code Size | 1304 Byte |
| Status | AC |
| Exec Time | 14 ms |
| Memory | 8040 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 525 / 525 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 02_corner_1_00.txt, 02_corner_1_01.txt, 02_corner_1_02.txt, 02_corner_1_03.txt, 02_corner_1_04.txt, 02_corner_1_05.txt, 02_corner_1_06.txt, 02_corner_1_07.txt, 02_corner_1_08.txt, 02_corner_1_09.txt, 02_corner_1_10.txt, 02_corner_1_11.txt, 02_corner_1_12.txt, 02_corner_1_13.txt, 02_corner_1_14.txt, 02_corner_1_15.txt, 02_corner_1_16.txt, 02_corner_1_17.txt, 02_corner_1_18.txt, 03_corner_2_00.txt, 03_corner_2_01.txt, 03_corner_2_02.txt, 03_corner_2_03.txt, 03_corner_2_04.txt, 03_corner_2_05.txt, 03_corner_2_06.txt, 03_corner_2_07.txt, 03_corner_2_08.txt, 03_corner_2_09.txt, 03_corner_2_10.txt, 03_corner_2_11.txt, 03_corner_2_12.txt, 03_corner_2_13.txt, 03_corner_2_14.txt, 03_corner_2_15.txt, 03_corner_2_16.txt, 03_corner_2_17.txt, 03_corner_2_18.txt, 04_corner_3_00.txt, 04_corner_3_01.txt, 04_corner_3_02.txt, 04_corner_3_03.txt, 04_corner_3_04.txt, 04_corner_3_05.txt, 04_corner_3_06.txt, 04_corner_3_07.txt, 05_corner_4_00.txt, 05_corner_4_01.txt, 05_corner_4_02.txt, 05_corner_4_03.txt, 05_corner_4_04.txt, 05_corner_4_05.txt, 05_corner_4_06.txt, 05_corner_4_07.txt, 05_corner_4_08.txt, 05_corner_4_09.txt, 05_corner_4_10.txt, 05_corner_4_11.txt, 05_corner_4_12.txt, 05_corner_4_13.txt, 05_corner_4_14.txt, 05_corner_4_15.txt, 05_corner_4_16.txt, 05_corner_4_17.txt, 05_corner_4_18.txt, 05_corner_4_19.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 1964 KiB |
| 00_sample_01.txt | AC | 1 ms | 2016 KiB |
| 01_random_00.txt | AC | 14 ms | 7832 KiB |
| 01_random_01.txt | AC | 13 ms | 7860 KiB |
| 01_random_02.txt | AC | 13 ms | 8040 KiB |
| 01_random_03.txt | AC | 13 ms | 7996 KiB |
| 01_random_04.txt | AC | 13 ms | 7900 KiB |
| 01_random_05.txt | AC | 13 ms | 7860 KiB |
| 01_random_06.txt | AC | 13 ms | 7940 KiB |
| 01_random_07.txt | AC | 13 ms | 7932 KiB |
| 01_random_08.txt | AC | 13 ms | 7860 KiB |
| 01_random_09.txt | AC | 13 ms | 7848 KiB |
| 02_corner_1_00.txt | AC | 13 ms | 7800 KiB |
| 02_corner_1_01.txt | AC | 13 ms | 7908 KiB |
| 02_corner_1_02.txt | AC | 12 ms | 7852 KiB |
| 02_corner_1_03.txt | AC | 13 ms | 7808 KiB |
| 02_corner_1_04.txt | AC | 12 ms | 7912 KiB |
| 02_corner_1_05.txt | AC | 12 ms | 7736 KiB |
| 02_corner_1_06.txt | AC | 12 ms | 7848 KiB |
| 02_corner_1_07.txt | AC | 12 ms | 7788 KiB |
| 02_corner_1_08.txt | AC | 12 ms | 7976 KiB |
| 02_corner_1_09.txt | AC | 12 ms | 7852 KiB |
| 02_corner_1_10.txt | AC | 13 ms | 7900 KiB |
| 02_corner_1_11.txt | AC | 13 ms | 7820 KiB |
| 02_corner_1_12.txt | AC | 12 ms | 7756 KiB |
| 02_corner_1_13.txt | AC | 12 ms | 7856 KiB |
| 02_corner_1_14.txt | AC | 12 ms | 7884 KiB |
| 02_corner_1_15.txt | AC | 12 ms | 7904 KiB |
| 02_corner_1_16.txt | AC | 13 ms | 7832 KiB |
| 02_corner_1_17.txt | AC | 13 ms | 8032 KiB |
| 02_corner_1_18.txt | AC | 13 ms | 7756 KiB |
| 03_corner_2_00.txt | AC | 13 ms | 7804 KiB |
| 03_corner_2_01.txt | AC | 13 ms | 7960 KiB |
| 03_corner_2_02.txt | AC | 12 ms | 7828 KiB |
| 03_corner_2_03.txt | AC | 12 ms | 7888 KiB |
| 03_corner_2_04.txt | AC | 12 ms | 7960 KiB |
| 03_corner_2_05.txt | AC | 12 ms | 7860 KiB |
| 03_corner_2_06.txt | AC | 12 ms | 8008 KiB |
| 03_corner_2_07.txt | AC | 12 ms | 7820 KiB |
| 03_corner_2_08.txt | AC | 12 ms | 7960 KiB |
| 03_corner_2_09.txt | AC | 13 ms | 7788 KiB |
| 03_corner_2_10.txt | AC | 13 ms | 7912 KiB |
| 03_corner_2_11.txt | AC | 13 ms | 7916 KiB |
| 03_corner_2_12.txt | AC | 12 ms | 7820 KiB |
| 03_corner_2_13.txt | AC | 12 ms | 7984 KiB |
| 03_corner_2_14.txt | AC | 12 ms | 7900 KiB |
| 03_corner_2_15.txt | AC | 12 ms | 8040 KiB |
| 03_corner_2_16.txt | AC | 13 ms | 7900 KiB |
| 03_corner_2_17.txt | AC | 13 ms | 7880 KiB |
| 03_corner_2_18.txt | AC | 13 ms | 7860 KiB |
| 04_corner_3_00.txt | AC | 13 ms | 7880 KiB |
| 04_corner_3_01.txt | AC | 12 ms | 7784 KiB |
| 04_corner_3_02.txt | AC | 13 ms | 7916 KiB |
| 04_corner_3_03.txt | AC | 12 ms | 7900 KiB |
| 04_corner_3_04.txt | AC | 12 ms | 7828 KiB |
| 04_corner_3_05.txt | AC | 13 ms | 7832 KiB |
| 04_corner_3_06.txt | AC | 12 ms | 7884 KiB |
| 04_corner_3_07.txt | AC | 12 ms | 7780 KiB |
| 05_corner_4_00.txt | AC | 12 ms | 7848 KiB |
| 05_corner_4_01.txt | AC | 12 ms | 7796 KiB |
| 05_corner_4_02.txt | AC | 12 ms | 7836 KiB |
| 05_corner_4_03.txt | AC | 12 ms | 7860 KiB |
| 05_corner_4_04.txt | AC | 12 ms | 7788 KiB |
| 05_corner_4_05.txt | AC | 12 ms | 7804 KiB |
| 05_corner_4_06.txt | AC | 12 ms | 7872 KiB |
| 05_corner_4_07.txt | AC | 12 ms | 7768 KiB |
| 05_corner_4_08.txt | AC | 12 ms | 7816 KiB |
| 05_corner_4_09.txt | AC | 12 ms | 7904 KiB |
| 05_corner_4_10.txt | AC | 12 ms | 7852 KiB |
| 05_corner_4_11.txt | AC | 12 ms | 7820 KiB |
| 05_corner_4_12.txt | AC | 12 ms | 7908 KiB |
| 05_corner_4_13.txt | AC | 12 ms | 7852 KiB |
| 05_corner_4_14.txt | AC | 12 ms | 7852 KiB |
| 05_corner_4_15.txt | AC | 12 ms | 7796 KiB |
| 05_corner_4_16.txt | AC | 13 ms | 7848 KiB |
| 05_corner_4_17.txt | AC | 13 ms | 7756 KiB |
| 05_corner_4_18.txt | AC | 13 ms | 7792 KiB |
| 05_corner_4_19.txt | AC | 13 ms | 7932 KiB |