結果
| 問題 |
No.513 宝探し2
|
| コンテスト | |
| ユーザー |
uafr_cs
|
| 提出日時 | 2017-05-05 23:18:50 |
| 言語 | Java (openjdk 23) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 2,548 bytes |
| コンパイル時間 | 4,193 ms |
| コンパイル使用メモリ | 90,584 KB |
| 実行使用メモリ | 72,172 KB |
| 平均クエリ数 | 78.17 |
| 最終ジャッジ日時 | 2024-07-16 13:24:56 |
| 合計ジャッジ時間 | 8,324 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 5 RE * 7 |
ソースコード
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.PriorityQueue;
import java.util.Scanner;
public class Main {
public static int RANGE = 100;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int y = 0, x = 0;
System.out.println(x + " " + y);
int min_dist = sc.nextInt();
if(min_dist == 0){ return; }
{
int add = 1;
while(true){
if(add == 1){
final int next_plus_x = x + add;
final int next_minus_x = x - add;
final int next_y = y;
System.out.println(next_plus_x + " " + next_y);
final int next_plus_dist = sc.nextInt();
if(next_plus_dist == 0){ return; }
System.out.println(next_minus_x + " " + next_y);
final int next_minus_dist = sc.nextInt();
if(next_minus_dist == 0){ return; }
if(min_dist < Math.min(next_plus_dist, next_minus_dist)){ break; }
if(next_plus_dist < next_minus_dist){
x = next_plus_x;
add = 2;
min_dist = next_plus_dist;
}else{
x = next_minus_x;
add = -2;
min_dist = next_minus_dist;
}
}else{
final int next_x = x + add;
final int next_y = y;
System.out.println(next_x + " " + next_y);
final int next_dist = sc.nextInt();
if(next_dist == 0){ return; }
if(next_dist < min_dist){
x = next_x;
add *= 2;
min_dist = next_dist;
}else{
add = 1;
}
}
}
}
{
int add = 1;
while(true){
if(add == 1){
final int next_x = x;
final int next_plus_y = y + add;
final int next_minus_y = y - add;
System.out.println(next_x + " " + next_plus_y);
final int next_plus_dist = sc.nextInt();
if(next_plus_dist == 0){ return; }
System.out.println(next_x + " " + next_minus_y);
final int next_minus_dist = sc.nextInt();
if(next_minus_dist == 0){ return; }
if(min_dist < Math.min(next_plus_dist, next_minus_dist)){ break; }
if(next_plus_dist < next_minus_dist){
y = next_plus_y;
add = 2;
}else{
y = next_minus_y;
add = -2;
}
}else{
final int next_x = x;
final int next_y = y + add;
System.out.println(next_x + " " + next_y);
final int next_dist = sc.nextInt();
if(next_dist == 0){ return; }
if(next_dist < min_dist){
y = next_y;
add *= 2;
}else{
add = 1;
}
}
}
}
}
}
uafr_cs