結果
問題 | No.7 プライムナンバーゲーム |
ユーザー |
![]() |
提出日時 | 2018-02-18 14:34:03 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 245 ms / 5,000 ms |
コード長 | 1,002 bytes |
コンパイル時間 | 3,222 ms |
コンパイル使用メモリ | 77,756 KB |
実行使用メモリ | 54,360 KB |
最終ジャッジ日時 | 2024-10-01 16:08:57 |
合計ジャッジ時間 | 7,611 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 17 |
ソースコード
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class No7 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); boolean dp[] = new boolean[10010]; dp[0] = true; dp[1] = true; dp[2] = false; dp[3] = false; dp[4] = true; dp[5] = true; List<Integer> sosuu = new ArrayList<Integer>(); //10000以下の素数リスト,要素数1229 for(int i = 2;i <= 10000;i++) { sosuu.add(i); } for(int i = 0;sosuu.get(i) <= 97;i++) { for(int j = sosuu.get(i) * 2;j <= 10000;j += sosuu.get(i)) { if(sosuu.indexOf(j) != -1) { sosuu.remove(sosuu.indexOf(j)); } } } for(int i = 6;i <= N;i++) { for(int j = 0;j < sosuu.size();j++) { if(sosuu.get(j) > i) { break; } if(dp[i - sosuu.get(j)] == false) { dp[i] = true; break; } dp[i] = false; } } if(dp[N]) { System.out.println("Win"); }else { System.out.println("Lose"); } } }