提出 #32114608


ソースコード 拡げる

parseints() = parse.(Int, split(readline()))

const P = 10^9 + 7

const dx = [-1, 0, -1]
const dy = [0, -1, -1]

function solve(h, w, ss)
    dp = zeros(Int, h, w, 4)
    dp[1, 1, 4] = 1
    for i in 1:h
        for j in 1:w
            ss[i][j] == '.' || continue
            for k in 1:3
                i0 = i + dx[k]
                j0 = j + dy[k]
                (1 ≤ i0 ≤ h && 1 ≤ j0 ≤ w && ss[i0][j0] == '.') || continue
                dp[i, j, k] += dp[i0, j0, k] + dp[i0, j0, 4]
                dp[i, j, 4] += dp[i0, j0, k] + dp[i0, j0, 4]
            end

            for k in 1:4
                dp[i, j, k] %= P
            end
        end
    end
    dp[h, w, 4]
end

function main()
    h, w = parseints()
    ss = Vector{String}(undef, h)
    for i in 1:h
        ss[i] = readline()
    end
    println(solve(h, w, ss))
end

main()

提出情報

提出日時
問題 E - Queen on Grid
ユーザ matsueushi
言語 Julia (1.4.0)
得点 500
コード長 895 Byte
結果 AC
実行時間 717 ms
メモリ 307224 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 3
AC × 18
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, sample_01.txt, sample_02.txt, sample_03.txt
ケース名 結果 実行時間 メモリ
random_01.txt AC 599 ms 306900 KiB
random_02.txt AC 379 ms 215076 KiB
random_03.txt AC 678 ms 306920 KiB
random_04.txt AC 395 ms 222552 KiB
random_05.txt AC 629 ms 306448 KiB
random_06.txt AC 330 ms 194716 KiB
random_07.txt AC 588 ms 306588 KiB
random_08.txt AC 312 ms 189692 KiB
random_09.txt AC 677 ms 307224 KiB
random_10.txt AC 317 ms 191904 KiB
random_11.txt AC 625 ms 306516 KiB
random_12.txt AC 293 ms 178608 KiB
random_13.txt AC 717 ms 306948 KiB
random_14.txt AC 640 ms 304688 KiB
random_15.txt AC 382 ms 306572 KiB
sample_01.txt AC 295 ms 177836 KiB
sample_02.txt AC 296 ms 178128 KiB
sample_03.txt AC 293 ms 177624 KiB