Submission #60774123


Source Code Expand

use std::{
    cmp::Reverse,
    collections::{BTreeSet, BinaryHeap, VecDeque},
};

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

pub fn main() {
    input! {
        h: usize,
        w: usize,
        xx: u128,
        p: usize,
        q: usize,
        shw: [[u128; w]; h]
    };
    let p = p - 1;
    let q = q - 1;
    let mut slimed = vec![vec![false; w]; h];
    slimed[p][q] = true;
    let mut added = vec![vec![false; w]; h];
    added[p][q] = true;
    let mut power = shw[p][q];
    let mut candidates = BinaryHeap::new();
    let d = vec![(0, 1), (0, -1), (1, 0), (-1, 0)];
    for (dy, dx) in d.clone() {
        let ny = p as i64 + dy;
        let nx = q as i64 + dx;
        if ny < 0 || ny >= h as i64 || nx < 0 || nx >= w as i64 {
            continue;
        }
        let ny = ny as usize;
        let nx = nx as usize;
        candidates.push(Reverse((shw[ny][nx], (ny, nx))));
        added[ny][nx] = true;
    }
    while let Some(Reverse((np, (y, x)))) = candidates.pop() {
        if slimed[y][x] {
            continue;
        }
        if power > xx * np {
            power += np;
            slimed[y][x] = true;
        } else {
            println!("{}", power);
            return;
        }
        for (dy, dx) in d.iter() {
            let ny = y as i64 + dy;
            let nx = x as i64 + dx;
            if ny < 0 || ny >= h as i64 || nx < 0 || nx >= w as i64 {
                continue;
            }
            let ny = ny as usize;
            let nx = nx as usize;
            if slimed[ny][nx] || added[ny][nx] {
                continue;
            }
            added[ny][nx] = true;
            candidates.push(Reverse((shw[ny][nx], (ny, nx))));
        }
    }
    println!("{}", power);
}

Submission Info

Submission Time
Task E - Takahashi is Slime 2
User macaroon
Language Rust (rustc 1.70.0)
Score 450
Code Size 1801 Byte
Status AC
Exec Time 65 ms
Memory 13584 KiB

Compile Error

warning: unused imports: `BTreeSet`, `VecDeque`
 --> src/main.rs:3:19
  |
3 |     collections::{BTreeSet, BinaryHeap, VecDeque},
  |                   ^^^^^^^^              ^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: unused import: `marker::Chars`
 --> src/main.rs:6:23
  |
6 | use proconio::{input, marker::Chars};
  |                       ^^^^^^^^^^^^^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 450 / 450
Status
AC × 3
AC × 65
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_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, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt, 01_random_49.txt, 01_random_50.txt, 01_random_51.txt, 01_random_52.txt, 01_random_53.txt, 01_random_54.txt, 01_random_55.txt, 01_random_56.txt, 01_random_57.txt, 01_random_58.txt, 01_random_59.txt, 01_random_60.txt, 01_random_61.txt, 01_random_62.txt, 01_random_63.txt, 01_random_64.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 2080 KiB
00_sample_01.txt AC 1 ms 2024 KiB
00_sample_02.txt AC 1 ms 1928 KiB
01_random_03.txt AC 59 ms 11332 KiB
01_random_04.txt AC 3 ms 2520 KiB
01_random_05.txt AC 64 ms 11900 KiB
01_random_06.txt AC 13 ms 4464 KiB
01_random_07.txt AC 63 ms 12220 KiB
01_random_08.txt AC 3 ms 2548 KiB
01_random_09.txt AC 63 ms 12200 KiB
01_random_10.txt AC 9 ms 3636 KiB
01_random_11.txt AC 13 ms 9552 KiB
01_random_12.txt AC 1 ms 1964 KiB
01_random_13.txt AC 12 ms 9548 KiB
01_random_14.txt AC 5 ms 3000 KiB
01_random_15.txt AC 63 ms 11752 KiB
01_random_16.txt AC 1 ms 2336 KiB
01_random_17.txt AC 60 ms 12244 KiB
01_random_18.txt AC 3 ms 2552 KiB
01_random_19.txt AC 57 ms 11208 KiB
01_random_20.txt AC 4 ms 4088 KiB
01_random_21.txt AC 65 ms 11928 KiB
01_random_22.txt AC 2 ms 3064 KiB
01_random_23.txt AC 12 ms 9404 KiB
01_random_24.txt AC 3 ms 3552 KiB
01_random_25.txt AC 12 ms 9480 KiB
01_random_26.txt AC 1 ms 2052 KiB
01_random_27.txt AC 10 ms 8368 KiB
01_random_28.txt AC 3 ms 3616 KiB
01_random_29.txt AC 12 ms 9508 KiB
01_random_30.txt AC 5 ms 4604 KiB
01_random_31.txt AC 12 ms 9524 KiB
01_random_32.txt AC 4 ms 3996 KiB
01_random_33.txt AC 12 ms 9588 KiB
01_random_34.txt AC 7 ms 6036 KiB
01_random_35.txt AC 11 ms 8912 KiB
01_random_36.txt AC 2 ms 2656 KiB
01_random_37.txt AC 10 ms 8228 KiB
01_random_38.txt AC 4 ms 3776 KiB
01_random_39.txt AC 12 ms 9472 KiB
01_random_40.txt AC 2 ms 2956 KiB
01_random_41.txt AC 12 ms 9464 KiB
01_random_42.txt AC 4 ms 4260 KiB
01_random_43.txt AC 1 ms 1940 KiB
01_random_44.txt AC 1 ms 2080 KiB
01_random_45.txt AC 1 ms 1892 KiB
01_random_46.txt AC 1 ms 1832 KiB
01_random_47.txt AC 1 ms 1940 KiB
01_random_48.txt AC 1 ms 1884 KiB
01_random_49.txt AC 1 ms 1932 KiB
01_random_50.txt AC 1 ms 1888 KiB
01_random_51.txt AC 1 ms 1884 KiB
01_random_52.txt AC 1 ms 1904 KiB
01_random_53.txt AC 1 ms 2024 KiB
01_random_54.txt AC 1 ms 2016 KiB
01_random_55.txt AC 1 ms 1972 KiB
01_random_56.txt AC 1 ms 2040 KiB
01_random_57.txt AC 1 ms 1940 KiB
01_random_58.txt AC 26 ms 13368 KiB
01_random_59.txt AC 27 ms 13584 KiB
01_random_60.txt AC 29 ms 13372 KiB
01_random_61.txt AC 1 ms 1936 KiB
01_random_62.txt AC 1 ms 1920 KiB
01_random_63.txt AC 1 ms 2084 KiB
01_random_64.txt AC 1 ms 2072 KiB