提出 #16271010


ソースコード 拡げる

use proconio::input;
use proconio::marker::Chars;

fn f(a: &Vec<Vec<char>>) -> bool {
    let mut b = a.clone();
    let mut count = 0;
    let r = b.len();
    for i in 0..r {
        let c = b[i].len();
        for j in 0..c {
            if b[i][j] == 'x' {
                continue;
            }
            count += 1;
            // dfs
            let mut stack = vec![];
            stack.push((i, j));
            while let Some((y, x)) = stack.pop() {
                if b[y][x] == 'x' {
                    continue;
                }
                b[y][x] = 'x';
                let dir = vec![(-1, 0), (0, -1), (0, 1), (1, 0)];
                for (d_r, d_c) in dir.iter() {
                    let (y_next, x_next) = (y as i64 + d_r, x as i64 + d_c);
                    if !(0..r as i64).contains(&y_next) || !(0..c as i64).contains(&x_next) {
                        continue;
                    }
                    let (y_next, x_next) = (y_next as usize, x_next as usize);
                    match b[y_next][x_next] {
                        'o' => stack.push((y_next, x_next)),
                        'x' => {}
                        _ => unreachable!(),
                    }
                }
            }
        }
    }
    count <= 1
}

fn main() {
    input! {
        mut a: [Chars; 10],
    };

    let mut is_ok = f(&a);
    for i in 0..10 {
        for j in 0..10 {
            if a[i][j] == 'o' {
                continue;
            }
            a[i][j] = 'o';
            is_ok |= f(&a);
            a[i][j] = 'x';
        }
    }
    let ans = is_ok;
    println!("{}", if ans { "YES" } else { "NO" });
}

提出情報

提出日時
問題 B - 埋め立て
ユーザ bouzuya
言語 Rust (1.42.0)
得点 100
コード長 1650 Byte
結果 AC
実行時間 8 ms
メモリ 2168 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 100 / 100
結果
AC × 3
AC × 33
セット名 テストケース
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, 10_rand_00.txt, 10_rand_01.txt, 10_rand_02.txt, 10_rand_03.txt, 10_rand_04.txt, 10_rand_05.txt, 10_rand_06.txt, 10_rand_07.txt, 10_rand_08.txt, 10_rand_09.txt, 10_rand_10.txt, 10_rand_11.txt, 10_rand_12.txt, 10_rand_13.txt, 10_rand_14.txt, 10_rand_15.txt, 10_rand_16.txt, 10_rand_17.txt, 10_rand_18.txt, 10_rand_19.txt, 10_rand_20.txt, 10_rand_21.txt, 10_rand_22.txt, 10_rand_23.txt, 10_rand_24.txt, 10_rand_25.txt, 10_rand_26.txt, 10_rand_27.txt, 10_rand_28.txt, 10_rand_29.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 8 ms 2136 KiB
00_sample_01.txt AC 2 ms 2036 KiB
00_sample_02.txt AC 2 ms 2116 KiB
10_rand_00.txt AC 3 ms 2048 KiB
10_rand_01.txt AC 2 ms 1964 KiB
10_rand_02.txt AC 2 ms 2068 KiB
10_rand_03.txt AC 2 ms 2016 KiB
10_rand_04.txt AC 2 ms 2064 KiB
10_rand_05.txt AC 2 ms 2056 KiB
10_rand_06.txt AC 2 ms 1940 KiB
10_rand_07.txt AC 2 ms 2060 KiB
10_rand_08.txt AC 2 ms 2040 KiB
10_rand_09.txt AC 1 ms 2012 KiB
10_rand_10.txt AC 2 ms 2084 KiB
10_rand_11.txt AC 1 ms 2084 KiB
10_rand_12.txt AC 2 ms 1988 KiB
10_rand_13.txt AC 1 ms 1924 KiB
10_rand_14.txt AC 2 ms 1932 KiB
10_rand_15.txt AC 4 ms 2044 KiB
10_rand_16.txt AC 3 ms 2088 KiB
10_rand_17.txt AC 2 ms 2056 KiB
10_rand_18.txt AC 2 ms 1948 KiB
10_rand_19.txt AC 2 ms 2008 KiB
10_rand_20.txt AC 2 ms 2096 KiB
10_rand_21.txt AC 2 ms 1892 KiB
10_rand_22.txt AC 2 ms 1996 KiB
10_rand_23.txt AC 2 ms 2012 KiB
10_rand_24.txt AC 3 ms 1960 KiB
10_rand_25.txt AC 2 ms 2060 KiB
10_rand_26.txt AC 2 ms 2168 KiB
10_rand_27.txt AC 2 ms 1888 KiB
10_rand_28.txt AC 2 ms 1964 KiB
10_rand_29.txt AC 2 ms 2096 KiB