結果
問題 | No.7 プライムナンバーゲーム |
ユーザー |
|
提出日時 | 2016-06-21 09:34:36 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 163 ms / 5,000 ms |
コード長 | 2,659 bytes |
コンパイル時間 | 2,166 ms |
コンパイル使用メモリ | 78,884 KB |
実行使用メモリ | 39,720 KB |
最終ジャッジ日時 | 2024-10-01 15:47:11 |
合計ジャッジ時間 | 4,634 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 17 |
ソースコード
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) throws IOException { proconScan proScan = new proconScan(" "); Integer A = proScan.scanInteger1(); List<Integer> primeNum = new ArrayList<>(); primeNum.add(2); primeNum.add(3); Integer i, j; boolean flag = false; for (i = 5; i <= A; i++) { for (j = 2; j * j <= i; j++) { if (i % j == 0) { flag = false; break; } flag = true; } if (flag) { primeNum.add(i); } } boolean[] dp = new boolean[A + 2]; dp[0] = true; dp[1] = true; for (i = 2; i <= A; i++) { for (Integer buf : primeNum) { if (i - buf < 0) { break; } dp[i] |= !dp[i - buf]; } } System.out.print(dp[A] ? "Win" : "Lose"); proScan.proconEnd(); } } class proconScan { private BufferedReader br; private String inLine; private String[] inString; private Integer idx; private String splitChar; public proconScan() { br = new BufferedReader(new InputStreamReader(System.in)); idx = 0; splitChar = " "; } public proconScan(String split) { br = new BufferedReader(new InputStreamReader(System.in)); idx = 0; splitChar = split; } public void proconEnd() throws IOException { // TODO 自動生成されたメソッド・スタブ br.close(); } public String scan() throws IOException { idx = 0; inLine = br.readLine(); inString = inLine.split(splitChar, 0); return inLine; } public Integer scanInteger1() throws IOException { scan(); return Integer.parseInt(inString[0]); } public String backLine() { return inLine; } public String nextString() { return inString[idx++]; } public String[] getString() { return inString; } public Integer nextInteger() { Integer num; try { num = Integer.parseInt(inString[idx++]); } catch (NumberFormatException e) { num = null;// TODO: handle exception } return num; } public Integer[] getInteger() { Integer[] num = new Integer[this.getLen()]; for (int i = 0; i < this.getLen(); i++) { num[i] = Integer.parseInt(inString[i]); } return num; } public Float nextFloat() { Float num; try { num = Float.parseFloat(inString[idx++]); } catch (NumberFormatException e) { num = null;// TODO: handle exception } return num; } public Float[] getFloat() { Float[] num = new Float[this.getLen()]; for (int i = 0; i < this.getLen(); i++) { num[i] = Float.parseFloat(inString[i]); } return num; } public Integer getLen() { return inString.length; } }