結果
| 問題 |
No.7 プライムナンバーゲーム
|
| コンテスト | |
| ユーザー |
cleantted
|
| 提出日時 | 2016-10-09 01:45:18 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 1,529 ms / 5,000 ms |
| コード長 | 716 bytes |
| コンパイル時間 | 163 ms |
| コンパイル使用メモリ | 12,416 KB |
| 実行使用メモリ | 10,880 KB |
| 最終ジャッジ日時 | 2024-10-01 15:50:03 |
| 合計ジャッジ時間 | 11,100 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 17 |
ソースコード
N = int(input())
memo = [-1] * (N+1) #-1 -> (not yet), 0 -> win, 1 -> Lose
prime = []
memo[0] = 0 #0 -> win
memo[1] = 0 #0 -> win
#素数列を作る(=prime)
for n in range(2,N+1):
flag = True
for m in range(2, n):
if n%m == 0:
flag = False
break
if flag: prime.append(n)
def res(i):
if memo[i] != -1: return(memo[i]) #計算済なら、それを返す
else:
flag = 1
for p in prime:
if p < i: flag = flag * (1 - res(i-p))
else: break
memo[i] = flag #計算結果をmemoに入れる
return(flag)
for i in range(N):
res(i)
if res(N) == 0: print("Win")
else: print("Lose")
cleantted