Submission #50308204


Source Code Expand

use std::collections::VecDeque;

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

fn ok(n: usize, m: usize, s: &[Vec<char>]) -> bool {
    let mut count = 0_usize;
    let mut visited = vec![vec![false; m]; n];
    for i in 0..n {
        for j in 0..m {
            if s[i][j] == '#' || visited[i][j] {
                continue;
            }

            count += 1;
            let mut deque = VecDeque::new();
            visited[i][j] = true;
            deque.push_back((i, j));
            while let Some((r, c)) = deque.pop_front() {
                let dir = vec![(-1, 0), (0, -1), (0, 1), (1, 0)];
                for (dr, dc) in dir {
                    let (nr, nc) = (r as i64 + dr, c as i64 + dc);
                    if !(0..n as i64).contains(&nr) || !(0..m as i64).contains(&nc) {
                        continue;
                    }
                    let (nr, nc) = (nr as usize, nc as usize);
                    if s[nr][nc] == '#' {
                        continue;
                    }
                    if visited[nr][nc] {
                        continue;
                    }
                    visited[nr][nc] = true;
                    deque.push_back((nr, nc));
                }
            }
        }
    }
    count == 1
}

fn main() {
    input! {
        n: usize,
        m: usize,
        mut s: [Chars; n],
    };

    let mut count = 0_usize;
    for i in 0..n {
        for j in 0..m {
            if s[i][j] != '#' {
                continue;
            }
            s[i][j] = '.';
            if ok(n, m, &s) {
                count += 1;
            }
            s[i][j] = '#';
        }
    }
    let ans = count;
    println!("{}", ans);
}

Submission Info

Submission Time
Task G - 村整備
User bouzuya
Language Rust (rustc 1.70.0)
Score 6
Code Size 1691 Byte
Status AC
Exec Time 1 ms
Memory 2076 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 6 / 6
Status
AC × 2
AC × 44
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All handmade_00.txt, handmade_01.txt, handmade_02.txt, handmade_03.txt, handmade_04.txt, handmade_05.txt, handmade_06.txt, handmade_07.txt, handmade_08.txt, handmade_09.txt, handmade_10.txt, handmade_11.txt, random_2_components_00.txt, random_2_components_01.txt, random_2_components_02.txt, random_2_components_03.txt, random_2_components_04.txt, random_2_components_05.txt, random_2_components_06.txt, random_2_components_07.txt, random_2_components_08.txt, random_2_components_09.txt, random_3_components_00.txt, random_3_components_01.txt, random_3_components_02.txt, random_3_components_03.txt, random_3_components_04.txt, random_3_components_05.txt, random_3_components_06.txt, random_3_components_07.txt, random_3_components_08.txt, random_3_components_09.txt, random_connected_00.txt, random_connected_01.txt, random_connected_02.txt, random_connected_03.txt, random_connected_04.txt, random_connected_05.txt, random_connected_06.txt, random_connected_07.txt, random_connected_08.txt, random_connected_09.txt, sample_01.txt, sample_02.txt
Case Name Status Exec Time Memory
handmade_00.txt AC 1 ms 2056 KiB
handmade_01.txt AC 1 ms 1920 KiB
handmade_02.txt AC 1 ms 1972 KiB
handmade_03.txt AC 1 ms 1908 KiB
handmade_04.txt AC 1 ms 2060 KiB
handmade_05.txt AC 0 ms 1912 KiB
handmade_06.txt AC 0 ms 1868 KiB
handmade_07.txt AC 0 ms 1804 KiB
handmade_08.txt AC 0 ms 1892 KiB
handmade_09.txt AC 0 ms 2052 KiB
handmade_10.txt AC 1 ms 1964 KiB
handmade_11.txt AC 1 ms 1952 KiB
random_2_components_00.txt AC 0 ms 2064 KiB
random_2_components_01.txt AC 1 ms 1904 KiB
random_2_components_02.txt AC 0 ms 2056 KiB
random_2_components_03.txt AC 0 ms 1916 KiB
random_2_components_04.txt AC 0 ms 2052 KiB
random_2_components_05.txt AC 0 ms 2076 KiB
random_2_components_06.txt AC 0 ms 1924 KiB
random_2_components_07.txt AC 1 ms 1744 KiB
random_2_components_08.txt AC 0 ms 1916 KiB
random_2_components_09.txt AC 1 ms 1800 KiB
random_3_components_00.txt AC 0 ms 1924 KiB
random_3_components_01.txt AC 1 ms 2000 KiB
random_3_components_02.txt AC 0 ms 1960 KiB
random_3_components_03.txt AC 0 ms 2068 KiB
random_3_components_04.txt AC 1 ms 1920 KiB
random_3_components_05.txt AC 0 ms 1852 KiB
random_3_components_06.txt AC 1 ms 1968 KiB
random_3_components_07.txt AC 0 ms 1996 KiB
random_3_components_08.txt AC 0 ms 1916 KiB
random_3_components_09.txt AC 1 ms 1784 KiB
random_connected_00.txt AC 0 ms 2072 KiB
random_connected_01.txt AC 0 ms 1868 KiB
random_connected_02.txt AC 0 ms 1900 KiB
random_connected_03.txt AC 1 ms 1956 KiB
random_connected_04.txt AC 0 ms 1920 KiB
random_connected_05.txt AC 1 ms 1988 KiB
random_connected_06.txt AC 0 ms 1856 KiB
random_connected_07.txt AC 1 ms 1912 KiB
random_connected_08.txt AC 1 ms 2060 KiB
random_connected_09.txt AC 1 ms 1920 KiB
sample_01.txt AC 0 ms 1956 KiB
sample_02.txt AC 0 ms 2052 KiB