結果

問題 No.513 宝探し2
ユーザー 37zigen37zigen
提出日時 2017-05-05 22:51:40
言語 Java21
(openjdk 21)
結果
WA  
実行時間 -
コード長 1,285 bytes
コンパイル時間 2,148 ms
コンパイル使用メモリ 78,176 KB
実行使用メモリ 75,344 KB
平均クエリ数 93.25
最終ジャッジ日時 2023-09-23 13:27:08
合計ジャッジ時間 7,132 ms
ジャッジサーバーID
(参考情報)
judge14 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 RE -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 AC 205 ms
72,512 KB
testcase_10 AC 214 ms
72,692 KB
testcase_11 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.Arrays;
import java.util.Scanner;
import java.util.concurrent.SynchronousQueue;

class Main {
	int N, M;
	int[] X, Y;

	public static void main(String[] args) {
		new Main().run();
	}

	void run() {
		Scanner sc = new Scanner(System.in);
		// [0,10^5]*[0,10^5]
		// 三分探索
		// 一回の操作で2/3
		int lX = 0, rX = 1_000_00;
		int lY = 0, rY = 1_000_00;
		for (int i = 0; i < 24; ++i) {
			int lx = (2 * lX + rX) / 3;
			int rx = (lX + 2 * rX) / 3;
			System.out.println(lx + " " + 0);
			int vl = sc.nextInt();
			System.out.println(rx + " " + 0);
			int vr = sc.nextInt();
			if (vl > vr) {
				lX = lx;
			} else {
				rX = rx;
			}
		}
		for (int i = 0; i < 24; ++i) {
			int ly = (2 * lY + rY) / 3;
			int ry = (lY + 2 * rY) / 3;
			System.out.println(lX + " " + ly);
			int vl = sc.nextInt();
			if (vl == 0)
				return;
			System.out.println(lX + " " + ry);
			int vr = sc.nextInt();
			if (vr == 0)
				return;
			if (vl > vr) {
				lY = ly;
			} else {
				rY = ry;
			}
		}
		System.out.println(rX + " " + rY);
		int vl = sc.nextInt();
		if (vl == 0)
			return;
		System.out.println(rX + " " + lY);
		int vr = sc.nextInt();
		if (vr == 0)
			return;
	}

	static void tr(Object... objects) {
		System.out.println(Arrays.deepToString(objects));
	}

}
0