結果

問題 No.594 壊れた宝物発見機
コンテスト
ユーザー takeya_okino
提出日時 2019-08-31 16:30:34
言語 Java
(openjdk 25.0.2)
コンパイル:
javac -encoding UTF8 _filename_
実行:
java -ea -Xmx700m -Xss256M -DONLINE_JUDGE=true _class_
結果
RE  
実行時間 -
コード長 1,739 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,665 ms
コンパイル使用メモリ 84,512 KB
実行使用メモリ 63,920 KB
平均クエリ数 169.60
最終ジャッジ日時 2026-03-31 07:53:15
合計ジャッジ時間 6,524 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other WA * 5 RE * 15
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import java.util.*;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int left = -100;
    int right = 101;
    int ans1 = -100;
    while(left + 1 < right) {
      int p1 = (2 * left + right) / 3;
      int p2 = (left + 2 * right) / 3;
      System.out.println("?" + " " + p1 + " " + 0 + " " + 0);
      int t1 = sc.nextInt();
      System.out.println("?" + " " + p2 + " " + 0 + " " + 0);
      int t2 = sc.nextInt();
      if(t1 >= t2) {
        ans1 = p1;
        if(left == p1) break;
        left = p1;
      } else {
        right = p2;
        ans1 = p2;
      }
    }
    
    left = -100;
    right = 101;
    int ans2 = -100;
    while(left + 1 < right) {
      int p1 = (2 * left + right) / 3;
      int p2 = (left + 2 * right) / 3;
      System.out.println("?" + " " + 0 + " " + p1 + " " + 0);
      int t1 = sc.nextInt();
      System.out.println("?" + " " + 0 + " " + p2 + " " + 0);
      int t2 = sc.nextInt();
      if(t1 >= t2) {
        ans1 = p1;
        if(left == p1) break;
        left = p1;
      } else {
        right = p2;
        ans1 = p2;
      }
    }

    left = -100;
    right = 101;
    int ans3 = -100;
    while(left + 1 < right) {
      int p1 = (2 * left + right) / 3;
      int p2 = (left + 2 * right) / 3;
      System.out.println("?" + " " + 0 + " " + 0 + " " + p1);
      int t1 = sc.nextInt();
      System.out.println("?" + " " + 0 + " " + 0 + " " + p2);
      int t2 = sc.nextInt();
      if(t1 >= t2) {
        ans1 = p1;
        if(left == p1) break;
        left = p1;
      } else {
        right = p2;
        ans1 = p2;
      }
    }

    System.out.println("!" + " " + ans1 + " " + ans2 + " " + ans3);
    System.exit(0);
  }
}
0