結果
| 問題 |
No.355 数当てゲーム(2)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-05-04 15:09:28 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,148 bytes |
| コンパイル時間 | 2,738 ms |
| コンパイル使用メモリ | 80,616 KB |
| 実行使用メモリ | 74,624 KB |
| 平均クエリ数 | 78.23 |
| 最終ジャッジ日時 | 2024-07-16 10:04:41 |
| 合計ジャッジ時間 | 22,359 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 4 WA * 48 |
ソースコード
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
sc = new Scanner(System.in);
boolean[] candidate = new boolean[10];
for (int j = 0; j < 10; j++) {
candidate[j] = true;
}
// phase 1
for (int j = 0; j < 10; j++) {
for (int k = 1; k <= 3; k++) {
System.out.println(j + " " + (j + k) % 10 + " " + (j + k * 2) % 10 + " " + (j + k * 3) % 10);
System.out.flush();
String input = sc.nextLine();
if (input.equals("4 0")) {
return;
} else {
int m1 = Integer.valueOf(input.split(" ")[0]);
int m2 = Integer.valueOf(input.split(" ")[1]);
if (m1 + m2 == 0) {
candidate[j] = false;
continue;
}
}
System.out.println(j + " " + (j + k * 2) % 10 + " " + (j + k * 3) % 10 + " " + (j + k * 4) % 10);
System.out.flush();
input = sc.nextLine();
if (input.equals("4 0")) {
return;
} else {
int m1 = Integer.valueOf(input.split(" ")[0]);
int m2 = Integer.valueOf(input.split(" ")[1]);
if (m1 + m2 == 0) {
candidate[j] = false;
continue;
}
}
}
}
List<Integer> combi = new ArrayList<Integer>();
for (int j = 0; j < 10; j++) {
if (candidate[j]) {
combi.add(j);
}
}
List<int[]> cand = split(combi);
for (int[] c : cand) {
System.out.println(c[0] + " " + c[1] + " " + c[2] + " " + c[3]);
System.out.flush();
String input = sc.nextLine();
if (input.equals("4 0")) {
return;
}
}
sc.close();
}
public static List<int[]> split(List<Integer> count) {
List<int[]> ret = new ArrayList<>();
for (int i1 = 0; i1 < 4; i1++) {
for (int i2 = 0; i2 < 4; i2++) {
for (int i3 = 0; i3 < 4; i3++) {
for (int i4 = 0; i4 < 4; i4++) {
if (i1 == i2 || i1 == i3 || i1 == i4 || i2 == i3 || i2 == i4 || i3 == i4) {
continue;
}
int[] k = new int[4];
k[0] = count.get(i1);
k[1] = count.get(i2);
k[2] = count.get(i3);
k[3] = count.get(i4);
ret.add(k);
}
}
}
}
return ret;
}
}