Please sign in first.
Submission #32796359
Source Code Expand
use std::collections::VecDeque;
use proconio::input;
fn f(n: usize, xy: &[(i64, i64, i64)], s: i64) -> bool {
let mut edges = vec![vec![]; n];
for (i, (x_i, y_i, p_i)) in xy.iter().copied().enumerate() {
for (j, (x_j, y_j, _)) in xy.iter().copied().enumerate() {
if i == j {
continue;
}
if p_i * s >= (x_i - x_j).abs() + (y_i - y_j).abs() {
edges[i].push(j);
}
}
}
let mut ok = false;
for s in 0..n {
let mut used = vec![false; n];
let mut deque = VecDeque::new();
deque.push_back(s);
used[s] = true;
while let Some(u) = deque.pop_front() {
for v in edges[u].iter().copied() {
if used[v] {
continue;
}
deque.push_back(v);
used[v] = true;
}
}
if used.iter().copied().all(|b| b) {
ok = true;
break;
}
}
ok
}
fn main() {
input! {
n: usize,
xy: [(i64, i64, i64); n],
};
let mut ng = 0_i64;
let mut ok = 10_000_000_000_i64;
while ok - ng > 1 {
let s = ng + (ok - ng) / 2;
if f(n, &xy, s) {
ok = s;
} else {
ng = s;
}
}
let ans = ok;
println!("{}", ans);
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Jumping Takahashi 2 |
| User | bouzuya |
| Language | Rust (1.42.0) |
| Score | 400 |
| Code Size | 1380 Byte |
| Status | AC |
| Exec Time | 36 ms |
| Memory | 2632 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_01.txt, 00_sample_02.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, 02_max_01.txt, 02_max_02.txt, 02_max_03.txt, 02_max_04.txt, 02_max_05.txt, 02_max_06.txt, 02_max_07.txt, 02_max_08.txt, 02_max_09.txt, 02_max_10.txt, 02_max_11.txt, 02_max_12.txt, 02_max_13.txt, 02_max_14.txt, 02_max_15.txt, 02_max_16.txt, 02_max_17.txt, 02_max_18.txt, 02_max_19.txt, 02_max_20.txt, 02_max_21.txt, 02_max_22.txt, 02_max_23.txt, 02_max_24.txt, 02_max_25.txt, 03_handmade_01.txt, 03_handmade_02.txt, 03_handmade_03.txt, 03_handmade_04.txt, 03_handmade_05.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_01.txt | AC | 7 ms | 2084 KiB |
| 00_sample_02.txt | AC | 1 ms | 2088 KiB |
| 01_random_01.txt | AC | 1 ms | 1968 KiB |
| 01_random_02.txt | AC | 1 ms | 1968 KiB |
| 01_random_03.txt | AC | 1 ms | 2112 KiB |
| 01_random_04.txt | AC | 2 ms | 2120 KiB |
| 01_random_05.txt | AC | 2 ms | 2036 KiB |
| 01_random_06.txt | AC | 4 ms | 2224 KiB |
| 01_random_07.txt | AC | 14 ms | 2328 KiB |
| 01_random_08.txt | AC | 2 ms | 2160 KiB |
| 02_max_01.txt | AC | 36 ms | 2492 KiB |
| 02_max_02.txt | AC | 28 ms | 2516 KiB |
| 02_max_03.txt | AC | 33 ms | 2592 KiB |
| 02_max_04.txt | AC | 29 ms | 2548 KiB |
| 02_max_05.txt | AC | 24 ms | 2540 KiB |
| 02_max_06.txt | AC | 29 ms | 2556 KiB |
| 02_max_07.txt | AC | 20 ms | 2512 KiB |
| 02_max_08.txt | AC | 26 ms | 2428 KiB |
| 02_max_09.txt | AC | 17 ms | 2512 KiB |
| 02_max_10.txt | AC | 25 ms | 2516 KiB |
| 02_max_11.txt | AC | 25 ms | 2420 KiB |
| 02_max_12.txt | AC | 24 ms | 2428 KiB |
| 02_max_13.txt | AC | 21 ms | 2596 KiB |
| 02_max_14.txt | AC | 27 ms | 2536 KiB |
| 02_max_15.txt | AC | 16 ms | 2468 KiB |
| 02_max_16.txt | AC | 18 ms | 2476 KiB |
| 02_max_17.txt | AC | 19 ms | 2556 KiB |
| 02_max_18.txt | AC | 18 ms | 2432 KiB |
| 02_max_19.txt | AC | 15 ms | 2480 KiB |
| 02_max_20.txt | AC | 17 ms | 2540 KiB |
| 02_max_21.txt | AC | 18 ms | 2600 KiB |
| 02_max_22.txt | AC | 18 ms | 2420 KiB |
| 02_max_23.txt | AC | 16 ms | 2624 KiB |
| 02_max_24.txt | AC | 17 ms | 2396 KiB |
| 02_max_25.txt | AC | 14 ms | 2488 KiB |
| 03_handmade_01.txt | AC | 3 ms | 2072 KiB |
| 03_handmade_02.txt | AC | 25 ms | 2632 KiB |
| 03_handmade_03.txt | AC | 34 ms | 2520 KiB |
| 03_handmade_04.txt | AC | 18 ms | 2528 KiB |
| 03_handmade_05.txt | AC | 28 ms | 2564 KiB |