結果

問題 No.533 Mysterious Stairs
コンテスト
ユーザー mai
提出日時 2017-06-23 01:43:01
言語 Ruby
(4.0.2)
コンパイル:
ruby -w -c _filename_
実行:
ruby _filename_
結果
AC  
実行時間 243 ms / 5,000 ms
コード長 451 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 57 ms
コンパイル使用メモリ 9,216 KB
実行使用メモリ 37,888 KB
最終ジャッジ日時 2026-04-20 04:41:25
合計ジャッジ時間 3,540 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 28
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #
raw source code

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