結果

問題 No.3018 目隠し宝探し
ユーザー magurofly
提出日時 2025-01-25 14:52:16
言語 Ruby
(3.4.1)
結果
AC  
実行時間 222 ms / 2,000 ms
コード長 735 bytes
コンパイル時間 891 ms
コンパイル使用メモリ 7,936 KB
実行使用メモリ 30,072 KB
平均クエリ数 2.59
最終ジャッジ日時 2025-01-25 23:31:21
合計ジャッジ時間 5,876 ms
ジャッジサーバーID
(参考情報)
judge6 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 21
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

STDOUT.sync = true

H, W = gets.split.map(&:to_i)

if H == 1 and W == 1
    puts "! 1 1"
    exit
end

i1, j1 = 1, 1
puts "? #{i1} #{j1}"
d1 = gets.to_i

if H == 1 or W == 1
    (1 .. H).each do |i|
        (1 .. W).each do |j|
            if d1 == (i - i1)**2 + (j - j1)**2
                puts "! #{i} #{j}"
                exit
            end
        end
    end
end

if d1 == 0
	puts "! #{i1} #{j1}"
	exit
end

if d1 == (H - i1)**2 + (W - j1)**2
    puts "! #{H} #{W}"
    exit
end

i2, j2 = H, 1
puts "? #{i2} #{j2}"
d2 = gets.to_i

(1 .. H).each do |i|
    (1 .. W).each do |j|
        if d1 == (i - i1)**2 + (j - j1)**2 and d2 == (i - i2)**2 + (j - j2)**2
            puts "! #{i} #{j}"
            exit
        end
    end
end
0