提出 #49357122


ソースコード 拡げる

use std::collections::{HashMap, HashSet, VecDeque};

use proconio::input;

fn main() {
    input! {
        n: usize,
        capital_x: i64,
        capital_y: i64,
        xy: [(i64, i64); n],
    };

    let inf = 1_usize << 60;

    let ng = xy.into_iter().collect::<HashSet<(i64, i64)>>();
    let mut dist = HashMap::new();
    let mut deque = VecDeque::new();
    deque.push_back(((0_i64, 0_i64), 0_usize));
    dist.insert((0, 0), 0_usize);
    while let Some(((x, y), d)) = deque.pop_front() {
        if d > *dist.get(&(x, y)).unwrap() {
            continue;
        }
        let dir = vec![(1, 1), (0, 1), (-1, 1), (1, 0), (-1, 0), (0, -1)];
        for (dx, dy) in dir {
            let (nx, ny, nd) = (x + dx, y + dy, d + 1);
            if !(-201_i64..=201_i64).contains(&nx) || !(-201_i64..=201_i64).contains(&ny) {
                continue;
            }
            if ng.contains(&(nx, ny)) {
                continue;
            }
            let min = *dist.get(&(nx, ny)).unwrap_or(&inf);
            if nd < min {
                dist.insert((nx, ny), nd);
                deque.push_back(((nx, ny), nd));
            }
        }
    }

    let ans = dist
        .get(&(capital_x, capital_y))
        .map(|x| *x as i64)
        .unwrap_or(-1_i64);
    println!("{}", ans);
}

提出情報

提出日時
問題 G - グリッド金移動
ユーザ bouzuya
言語 Rust (rustc 1.70.0)
得点 6
コード長 1302 Byte
結果 AC
実行時間 73 ms
メモリ 11696 KiB

ジャッジ結果

セット名 All
得点 / 配点 6 / 6
結果
AC × 25
セット名 テストケース
All 0.txt, 1.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 2.txt, 20.txt, 21.txt, 3.txt, 4.txt, 5.txt, 6.txt, 7.txt, 8.txt, 9.txt, s1.txt, s2.txt, s3.txt
ケース名 結果 実行時間 メモリ
0.txt AC 62 ms 11672 KiB
1.txt AC 61 ms 11596 KiB
10.txt AC 66 ms 11588 KiB
11.txt AC 66 ms 11476 KiB
12.txt AC 73 ms 11644 KiB
13.txt AC 65 ms 11588 KiB
14.txt AC 68 ms 11600 KiB
15.txt AC 68 ms 11668 KiB
16.txt AC 65 ms 11532 KiB
17.txt AC 1 ms 1908 KiB
18.txt AC 1 ms 2016 KiB
19.txt AC 1 ms 1808 KiB
2.txt AC 68 ms 11604 KiB
20.txt AC 1 ms 2036 KiB
21.txt AC 1 ms 1944 KiB
3.txt AC 67 ms 11696 KiB
4.txt AC 64 ms 11584 KiB
5.txt AC 61 ms 11596 KiB
6.txt AC 61 ms 11644 KiB
7.txt AC 60 ms 11592 KiB
8.txt AC 67 ms 11548 KiB
9.txt AC 1 ms 1880 KiB
s1.txt AC 65 ms 11592 KiB
s2.txt AC 62 ms 11560 KiB
s3.txt AC 62 ms 11684 KiB