結果
| 問題 | 
                            No.7 プライムナンバーゲーム
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2019-07-05 13:39:05 | 
| 言語 | Ruby  (3.4.1)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 558 bytes | 
| コンパイル時間 | 44 ms | 
| コンパイル使用メモリ | 7,552 KB | 
| 実行使用メモリ | 12,672 KB | 
| 最終ジャッジ日時 | 2024-09-21 15:24:30 | 
| 合計ジャッジ時間 | 4,375 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge3 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 7 WA * 10 | 
コンパイルメッセージ
Syntax OK
ソースコード
require 'prime'
N = gets.to_i
# 0=Lose, 1=Win
dp = Array.new(N+1){ nil }
dp[0], dp[1] = -1, -1 # whileの条件式で邪魔だから値入れとく
dp[2] = 0
dp[3] = 0
primes = Prime.each(N).to_a
result = 1
while dp.include? nil
  froms = []
  dp.each_with_index do | d, i |
    froms << i if d == (result ^ 1)
  end
  primes.each do | p |
    froms.each do | f |
      next if f+p > N
      dp[f+p] = result unless dp[f+p]
    end
  end
  result = result ^ 1 # bit反転
end
case dp[-1]
when 0
  puts 'Lose'
when 1
  puts 'Win'
else
  puts 'Illega'
end