結果
| 問題 |
No.7 プライムナンバーゲーム
|
| コンテスト | |
| ユーザー |
nbisco
|
| 提出日時 | 2016-04-10 22:22:21 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,060 bytes |
| コンパイル時間 | 108 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 12,160 KB |
| 最終ジャッジ日時 | 2024-10-04 05:54:25 |
| 合計ジャッジ時間 | 1,645 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 3 WA * 4 RE * 10 |
ソースコード
#!/usr/bin/env python3
#fileencoding: utf-8
def is_prime(n,primes):
for i in primes[1:]:
if i > (n//2):
break
if n % i == 0:
return False
return True
# turn = 1 : me
# turn = 0 : Eve
memo = {}
def dfs(N,primes,turn):
global memo
if N == 2:
result = False if turn == 1 else True
elif N <= 1:
result = True if turn == 1 else False
else:
result = True
for i in primes:
diff = N - i
if diff <= 1:
break
if (diff,turn) in memo:
result = memo[(diff,turn)]
else:
result = dfs(diff, primes, turn ^ 1)
memo[(diff,turn)] = result
if result == False:
break
return result
def mk_cache(N):
for i in range(1000,N,100):
dfs(i,primes,1)
N = int(input())
primes = [2]
for i in range(3,N+1,2):
if is_prime(i,primes):
primes.append(i)
mk_cache(N)
if dfs(N,primes,1):
print("Win")
else:
print("Lose")
nbisco