提出 #46906435


ソースコード 拡げる

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

use proconio::{input, marker::Usize1};

fn main() {
    input! {
        m: usize,
        uv: [(Usize1, Usize1); m],
        p: [Usize1; 8]
    };
    let p = {
        let set = p.iter().copied().collect::<HashSet<usize>>();
        let none = (0..9).find(|i| !set.contains(i)).unwrap();
        let mut v = vec![10; 9];
        for (i, p_i) in p.into_iter().chain(std::iter::once(none)).enumerate() {
            v[p_i] = i;
        }
        v
    };
    let mut map = HashMap::new();
    let mut deque = VecDeque::new();
    map.insert(p.clone(), 0_i64);
    deque.push_back(p);
    while let Some(p) = deque.pop_front() {
        let count = map[&p];
        for (u, v) in uv.iter().copied() {
            if p[u] != 8 && p[v] != 8 {
                continue;
            }
            let mut p = p.clone();
            p.swap(u, v);
            if map.contains_key(&p) {
                continue;
            }
            map.insert(p.clone(), count + 1);
            deque.push_back(p);
        }
    }

    let ans = map.get(&(0..9).collect::<Vec<usize>>()).unwrap_or(&-1);
    println!("{}", ans);
}

提出情報

提出日時
問題 D - 8 Puzzle on Graph
ユーザ bouzuya
言語 Rust (rustc 1.70.0)
得点 400
コード長 1165 Byte
結果 AC
実行時間 540 ms
メモリ 57364 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 4
AC × 46
セット名 テストケース
Sample example0.txt, example1.txt, example2.txt, example3.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, example0.txt, example1.txt, example2.txt, example3.txt
ケース名 結果 実行時間 メモリ
000.txt AC 1 ms 2020 KiB
001.txt AC 1 ms 2084 KiB
002.txt AC 540 ms 57256 KiB
003.txt AC 533 ms 57316 KiB
004.txt AC 539 ms 57148 KiB
005.txt AC 537 ms 57364 KiB
006.txt AC 540 ms 57224 KiB
007.txt AC 100 ms 25876 KiB
008.txt AC 101 ms 26056 KiB
009.txt AC 104 ms 25856 KiB
010.txt AC 104 ms 26096 KiB
011.txt AC 97 ms 25760 KiB
012.txt AC 100 ms 25808 KiB
013.txt AC 99 ms 25808 KiB
014.txt AC 105 ms 25768 KiB
015.txt AC 0 ms 1888 KiB
016.txt AC 0 ms 1960 KiB
017.txt AC 0 ms 1924 KiB
018.txt AC 0 ms 1900 KiB
019.txt AC 0 ms 1896 KiB
020.txt AC 1 ms 1956 KiB
021.txt AC 221 ms 47460 KiB
022.txt AC 216 ms 47404 KiB
023.txt AC 224 ms 47364 KiB
024.txt AC 211 ms 47408 KiB
025.txt AC 0 ms 1920 KiB
026.txt AC 0 ms 1960 KiB
027.txt AC 0 ms 2024 KiB
028.txt AC 1 ms 1944 KiB
029.txt AC 1 ms 2168 KiB
030.txt AC 0 ms 1892 KiB
031.txt AC 1 ms 2092 KiB
032.txt AC 399 ms 53076 KiB
033.txt AC 305 ms 50752 KiB
034.txt AC 369 ms 54272 KiB
035.txt AC 349 ms 53432 KiB
036.txt AC 302 ms 51636 KiB
037.txt AC 1 ms 1936 KiB
038.txt AC 1 ms 2188 KiB
039.txt AC 0 ms 2008 KiB
040.txt AC 1 ms 2092 KiB
041.txt AC 1 ms 2016 KiB
example0.txt AC 0 ms 1956 KiB
example1.txt AC 1 ms 1960 KiB
example2.txt AC 121 ms 25852 KiB
example3.txt AC 115 ms 26008 KiB