結果

問題 No.314 ケンケンパ
ユーザー Tsubasa
提出日時 2018-02-02 20:21:13
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
TLE  
実行時間 -
コード長 783 bytes
コンパイル時間 124 ms
コンパイル使用メモリ 12,544 KB
実行使用メモリ 225,360 KB
最終ジャッジ日時 2024-12-31 06:51:27
合計ジャッジ時間 9,625 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 9 RE * 5 TLE * 3
権限があれば一括ダウンロードができます

ソースコード

diff #

dp = []

KEN = 0
PA = 1

def kenpa(ken_pa, remain, ken_seq):
  global dp

  if remain == 0:
    return 1

  if dp[ken_pa][remain][ken_seq] != -1:
    return dp[ken_pa][remain][ken_seq]

  if ken_seq == 2:
    dp[ken_pa][remain][ken_seq] = kenpa(PA, remain-1, 0)
  elif ken_pa == PA:
    dp[ken_pa][remain][ken_seq] = kenpa(KEN, remain-1, ken_seq+1)
  else:
    dp[ken_pa][remain][ken_seq] = kenpa(KEN, remain-1, ken_seq+1) + kenpa(PA, remain-1, 0)

  return dp[ken_pa][remain][ken_seq]



def main():
  global dp

  N = int(input())

  for ken_pa in range(2):
    dp.append([])
    for remain_cell in range(N):
      dp[ken_pa].append([])
      for ken_seq in range(3):
        dp[ken_pa][remain_cell].append(-1)

  answer = kenpa(KEN, N-1, 1)

  print(answer % (10**9 + 7))

main()
0