Submission #37982532


Source Code Expand

use std::collections::BinaryHeap;

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

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

    let mut pq = BinaryHeap::new();
    for i in 0..h {
        for j in 0..w {
            pq.push((a[i][j], i, j));
        }
    }

    let mut dp = vec![vec![1_usize; w]; h];
    while let Some((_, i, j)) = pq.pop() {
        let dir = vec![(-1, 0), (0, -1), (0, 1), (1, 0)];
        for (dr, dc) in dir {
            let (nr, nc) = (i as i64 + dr, j as i64 + dc);
            if !(0..h as i64).contains(&nr) || !(0..w as i64).contains(&nc) {
                continue;
            }
            let (nr, nc) = (nr as usize, nc as usize);
            if a[nr][nc] >= a[i][j] {
                continue;
            }
            dp[nr][nc] += dp[i][j];
            dp[nr][nc] %= 1_000_000_007;
        }
    }

    let mut ans = 0_usize;
    for i in 0..h {
        for j in 0..w {
            ans += dp[i][j];
            ans %= 1_000_000_007;
        }
    }
    println!("{}", ans);
}

Submission Info

Submission Time
Task D - 経路
User bouzuya
Language Rust (1.42.0)
Score 100
Code Size 1063 Byte
Status AC
Exec Time 369 ms
Memory 50688 KiB

Compile Error

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

Judge Result

Set Name sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 24
Set Name Test Cases
sample sample01.txt, sample02.txt
All 00.txt, 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, 17.txt, 18.txt, 19.txt, sample01.txt, sample02.txt, sample01.txt, sample02.txt
Case Name Status Exec Time Memory
00.txt AC 298 ms 45412 KiB
01.txt AC 164 ms 47408 KiB
02.txt AC 206 ms 42888 KiB
03.txt AC 1 ms 1912 KiB
04.txt AC 2 ms 2056 KiB
05.txt AC 1 ms 2068 KiB
06.txt AC 2 ms 2184 KiB
07.txt AC 2 ms 2008 KiB
08.txt AC 1 ms 1972 KiB
09.txt AC 1 ms 2064 KiB
10.txt AC 2 ms 2152 KiB
11.txt AC 358 ms 50552 KiB
12.txt AC 367 ms 50536 KiB
13.txt AC 364 ms 50688 KiB
14.txt AC 361 ms 50612 KiB
15.txt AC 314 ms 49076 KiB
16.txt AC 364 ms 50656 KiB
17.txt AC 369 ms 50584 KiB
18.txt AC 223 ms 43044 KiB
19.txt AC 171 ms 42996 KiB
sample01.txt AC 1 ms 2096 KiB
sample02.txt AC 1 ms 2044 KiB