結果
| 問題 |
No.7 プライムナンバーゲーム
|
| コンテスト | |
| ユーザー |
uafr_cs
|
| 提出日時 | 2015-06-03 14:13:59 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 165 ms / 5,000 ms |
| コード長 | 960 bytes |
| コンパイル時間 | 2,208 ms |
| コンパイル使用メモリ | 78,144 KB |
| 実行使用メモリ | 42,100 KB |
| 最終ジャッジ日時 | 2024-10-01 15:33:13 |
| 合計ジャッジ時間 | 5,488 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 17 |
ソースコード
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
final int N = sc.nextInt();
boolean[] is_prime = new boolean[N + 1];
Arrays.fill(is_prime, true);
is_prime[0] = is_prime[1] = false;
List<Integer> primes = new LinkedList<Integer>();
for(int i = 2; i <= N; i++){
if(is_prime[i]){
primes.add(i);
for(int j = i * 2; j <= N; j += i){
is_prime[j] = false;
}
}
}
boolean[] DP = new boolean[N + 1];
DP[0] = DP[1] = true;
for(int i = 2; i <= N; i++){
boolean only_win = true;
for(final int prime : primes){
if(prime > i){ break; }
if(!DP[i - prime]){
only_win = false;
break;
}
}
DP[i] = !only_win;
}
//System.out.println(Arrays.toString(DP));
System.out.println(DP[N] ? "Win" : "Lose");
}
}
uafr_cs