結果
| 問題 |
No.361 門松ゲーム2
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-04-18 00:59:31 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,032 bytes |
| コンパイル時間 | 2,065 ms |
| コンパイル使用メモリ | 78,780 KB |
| 実行使用メモリ | 59,028 KB |
| 最終ジャッジ日時 | 2024-10-04 12:44:44 |
| 合計ジャッジ時間 | 8,270 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 15 WA * 13 |
ソースコード
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int L = scanner.nextInt();
int D = scanner.nextInt();
System.out.println(new Solver().solve(L, D));
}
}
class Solver {
public String solve(int l, int d) {
if (win(l, d)) {
return "kado";
}
return "matsu";
}
Map<Integer, Boolean> map = new HashMap<>();
private boolean win(int l, final int d) {
if (map.containsKey(l))
return map.get(l);
if (l <= 5) {
map.put(l, false);
return false;
}
for (int i = 1; i <= l; i++) {
for (int j = 1; j <= l; j++) {
int k = l - i - j;
if (i <= 0 || j <= 0 || k <= 0)
continue;
if (i == j || i == k || j == k)
continue;
if (Math.max(i, Math.max(j, k)) - Math.min(i, Math.min(j, k)) > d)
continue;
if (!win(i, d) & !win(j, d) & !win(k, d)) {
map.put(l, true);
return true;
}
}
}
map.put(l, false);
return false;
}
}