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
AC × 2
AC × 40
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