結果
問題 |
No.7 プライムナンバーゲーム
|
ユーザー |
![]() |
提出日時 | 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")