結果
問題 |
No.3246 80% Accuracy Calculator
|
ユーザー |
![]() |
提出日時 | 2025-08-22 23:31:51 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 941 bytes |
コンパイル時間 | 442 ms |
コンパイル使用メモリ | 82,604 KB |
実行使用メモリ | 86,044 KB |
平均クエリ数 | 144.84 |
最終ジャッジ日時 | 2025-08-22 23:32:28 |
合計ジャッジ時間 | 6,801 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | RE * 43 |
ソースコード
# from math import * # k = int(input()) # p = 0 # for i in range(k // 2 + 1, k + 1): # p += 0.8 ** i * 0.2 ** (k - i) * comb(k, i) # print(p) CNT = 0 def ask(x): global CNT CNT += 1 assert CNT <= 8888 print('?', 'ABC'[x]) res = int(input()) assert res != -1 return res def get(i): v = f = 0 while f < 44: r = ask(i) if f == 0: v, f = r, 1 elif v == r: f += 1 else: f -= 1 return v x, y = get(0), get(1) ix, iz = 0, 2 now = 0 for k in range(y.bit_length()): if y >> k & 1: now += x << k iy = 3 ^ ix ^ iz while True: print('+', ix, iz, iy) if get(iy) == now: iz = iy break if now == x * y: break iy = 3 ^ ix ^ iz while True: print('+', ix, ix, iy) if get(iy) == x << (k + 1): ix = iy break print('!', 'ABC'[iz])