結果
問題 | No.1208 anti primenumber game |
ユーザー | ああいい |
提出日時 | 2022-06-12 16:01:49 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 149 ms / 2,000 ms |
コード長 | 551 bytes |
コンパイル時間 | 151 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 123,820 KB |
最終ジャッジ日時 | 2024-09-23 04:04:52 |
合計ジャッジ時間 | 7,123 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 44 |
ソースコード
N,M = map(int,input().split()) A = list(map(int,input().split())) inf = 10 ** 20 dp = [[-inf] * 2 for _ in range(N)] if A[-1] > 1: dp[-1][0] = max(A[-1] - 1 - 1 + M,A[-1] - M) dp[-1][1] = -dp[-1][0] else: dp[-1][0] = 1 - M dp[-1][1] = M - 1 for i in range(N - 2,-1,-1): if A[i] > 1: dp[i][0] = max(A[i] - 1 - 1 + M + dp[i + 1][0],A[i] - M + dp[i + 1][1]) dp[i][1] = -dp[i][0] else: dp[i][0] = A[i] - M + dp[i + 1][1] dp[i][1] = M - 1 + dp[i + 1][0] print('First' if dp[0][0] > 0 else "Second")