結果

問題 No.533 Mysterious Stairs
ユーザー mai
提出日時 2017-06-23 01:43:01
言語 Ruby
(3.4.1)
結果
AC  
実行時間 458 ms / 5,000 ms
コード長 451 bytes
コンパイル時間 107 ms
コンパイル使用メモリ 7,552 KB
実行使用メモリ 35,712 KB
最終ジャッジ日時 2024-10-04 07:26:36
合計ジャッジ時間 4,865 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 28
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

def ascan; gets.split.map(&:to_i); end
def scan; gets.to_i; end

line = gets.chomp!
assert unless line=~/^\d+$/
assert unless !gets



MOD = 1000000007
n = line.to_i

dp1 = Array.new(n+4,0)
dp2 = Array.new(n+4,0)
dp3 = Array.new(n+4,0)

dp1[1] = 1
dp2[2] = 1
dp3[3] = 1

1.upto(n-1){|i|
    dp1[i+1] = (dp1[i+1]+dp2[i]+dp3[i])%MOD
    dp2[i+2] = (dp2[i+2]+dp1[i]+dp3[i])%MOD
    dp3[i+3] = (dp3[i+3]+dp1[i]+dp2[i])%MOD
}

p (dp1[n]+dp2[n]+dp3[n])%MOD
0