結果
| 問題 | No.3018 目隠し宝探し | 
| コンテスト | |
| ユーザー |  sasa8uyauya | 
| 提出日時 | 2025-01-25 14:06:17 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                RE
                                 
                             | 
| 実行時間 | - | 
| コード長 | 844 bytes | 
| コンパイル時間 | 160 ms | 
| コンパイル使用メモリ | 82,376 KB | 
| 実行使用メモリ | 84,980 KB | 
| 平均クエリ数 | 3.68 | 
| 最終ジャッジ日時 | 2025-01-25 23:07:45 | 
| 合計ジャッジ時間 | 4,699 ms | 
| ジャッジサーバーID (参考情報) | judge10 / judge8 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | RE * 1 | 
| other | RE * 21 | 
ソースコード
H,W=map(int,input().split())
n=H
f=[1,2]
while f[-1]*2+f[-2]<n:
  f+=[f[-1]+f[-2]]
f.reverse()
L=f[0]*2+f[1]
a=[-1]*(L+1)
for i in range(L+1-n-1):
  a[~i]=-(L+1)+i
l=0
r=L
for m in f:
  m1=l+m
  m2=r-m
  if 1<=m1<=n and a[m1]==-1:
    print("?",m1,1)
    a[m1]=H**2+W**2-int(input())
  if 1<=m2<=n and a[m2]==-1:
    print("?",m2,1)
    a[m2]=H**2+W**2-int(input())
  if a[m1]<a[m2]:
    l=m1
  else:
    r=m2
h=a.index(max(a))
n=W
f=[1,2]
while f[-1]*2+f[-2]<n:
  f+=[f[-1]+f[-2]]
f.reverse()
L=f[0]*2+f[1]
a=[-1]*(L+1)
for i in range(L+1-n-1):
  a[~i]=-(L+1)+i
l=0
r=L
for m in f:
  m1=l+m
  m2=r-m
  if 1<=m1<=n and a[m1]==-1:
    print("?",1,m1)
    a[m1]=H**2+W**2-int(input())
  if 1<=m2<=n and a[m2]==-1:
    print("?",1,m2)
    a[m2]=H**2+W**2-int(input())
  if a[m1]<a[m2]:
    l=m1
  else:
    r=m2
w=a.index(max(a))
print("!",h,w)
            
            
            
        