Submission #37771325


Source Code Expand

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

fn dijkstra(n: usize, inf: usize, e: &[Vec<(usize, usize)>], s: usize) -> Vec<usize> {
    use std::{cmp::Reverse, collections::BinaryHeap};
    let mut d = vec![inf; n];
    let mut pq = BinaryHeap::new();
    d[s] = 0;
    pq.push(Reverse((0, s)));
    while let Some(Reverse((w_u, u))) = pq.pop() {
        if w_u > d[u] {
            continue;
        }
        for (v, w_v) in e[u].iter().copied() {
            let w = w_u + w_v;
            if w < d[v] {
                d[v] = w;
                pq.push(Reverse((w, v)));
            }
        }
    }
    d
}

fn main() {
    input! {
        h: usize,
        w: usize,
        c: [[usize; 10]; 10],
        a: [[i64; w]; h],
    };

    let mut edges = vec![vec![]; 10];
    for i in 0..10 {
        for j in 0..10 {
            edges[i].push((j, c[i][j]));
        }
    }

    let mut dists = vec![];
    for i in 0..10 {
        let d = dijkstra(10, 1 << 60, &edges, i);
        dists.push(d[1]);
    }

    let mut ans = 0_usize;
    for i in 0..h {
        for j in 0..w {
            if a[i][j] == -1 {
                continue;
            }
            ans += dists[a[i][j] as usize];
        }
    }

    println!("{}", ans);
}

Submission Info

Submission Time
Task D - Wall
User bouzuya
Language Rust (1.42.0)
Score 400
Code Size 1238 Byte
Status AC
Exec Time 10 ms
Memory 2568 KiB

Compile Error

warning: unused import: `marker::Usize1`
 --> src/main.rs:1:23
  |
1 | use proconio::{input, marker::Usize1};
  |                       ^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 19
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, sample_01.txt, sample_02.txt, sample_03.txt
Case Name Status Exec Time Memory
01.txt AC 10 ms 2400 KiB
02.txt AC 4 ms 2536 KiB
03.txt AC 3 ms 2456 KiB
04.txt AC 3 ms 2492 KiB
05.txt AC 2 ms 2352 KiB
06.txt AC 4 ms 2436 KiB
07.txt AC 3 ms 2400 KiB
08.txt AC 2 ms 2240 KiB
09.txt AC 2 ms 2192 KiB
10.txt AC 4 ms 2568 KiB
11.txt AC 4 ms 2468 KiB
12.txt AC 4 ms 2548 KiB
13.txt AC 4 ms 2532 KiB
14.txt AC 4 ms 2532 KiB
15.txt AC 2 ms 2124 KiB
16.txt AC 4 ms 2472 KiB
sample_01.txt AC 2 ms 2140 KiB
sample_02.txt AC 2 ms 2164 KiB
sample_03.txt AC 2 ms 2080 KiB