結果

問題 No.3246 80% Accuracy Calculator
ユーザー ゼット
提出日時 2025-08-24 00:07:36
言語 PyPy3
(7.3.15)
結果
RE  
実行時間 -
コード長 1,829 bytes
コンパイル時間 293 ms
コンパイル使用メモリ 82,640 KB
実行使用メモリ 95,336 KB
平均クエリ数 3314.51
最終ジャッジ日時 2025-08-24 00:07:50
合計ジャッジ時間 11,510 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 36 RE * 7
権限があれば一括ダウンロードができます

ソースコード

diff #

v=[0]*900
for _ in range(10):
  print('?','A',flush=True)
  ans=int(input())
  if ans<900:
    v[ans]+=1
p=max(v)
X=-1
for i in range(900):
  if v[i]==p:
    X=i
v=[0]*900
for _ in range(10):
  print('?','B',flush=True)
  ans=int(input())
  if ans<900:
    v[ans]+=1
p=max(v)
Y=-1
for i in range(900):
  if v[i]==p:
    Y=i
a,b,c=X,X,0
count=20
for i in range(10000):
  if i%2==0:
    while True:
      if i>0 and 2*c<=X*Y:
        print('+','C','C','B',flush=True)
        t=0
        ans=int(input())
        for j in range(9):
          print('?','B',flush=True)
          ans=int(input())
          if ans==2*c:
            t+=1
        if t>=6:
          b=2*c
          break
      else:
        print('+','A','C','B',flush=True)
        ans=int(input())
        count+=1
        t=0
        for j in range(9):
          print('?','B',flush=True)
          ans=int(input())
          if ans==a+c:
            t+=1
        if t>=6:
          b=a+c
          break
  else:
    while True:
      if 2*b<=X*Y:
        print('+','B','B','C',flush=True)
        ans=int(input())
        t=0
        for j in range(10):
          print('?','C',flush=True)
          ans=int(input())
          if ans==2*b:
            t+=1
        if t>=7:
          c=2*b
          break
      else:
        print('+','A','B','C',flush=True)
        ans=int(input())
        count+=1
        t=0
        for j in range(10):
          print('?','C',flush=True)
          ans=int(input())
          if ans==a+b:
            t+=1
        if t>=7:
          c=a+b
          break
  if b>X*Y:
    p=[1]
    print(p[1])
  if c>X*Y:
    p=[1]
    print(p[1])
  if b==X*Y:
    print('!','B',flush=True)
    exit()
  if c==X*Y:
    print('!','C',flush=True)
    exit()
if Y%2==0:
  print('!','B',flush=True)
else:
  print('!','C',flush=True)
exit()
      
0