結果

問題 No.3737 Quiz Time
コンテスト
ユーザー 👑 kencho
提出日時 2026-09-03 04:46:26
言語 Python3
(3.14.7 + numpy 2.5.2 + scipy 1.18.0 + ACL)
コンパイル:
python3 -mpy_compile _filename_
実行:
python3 _filename_
結果
AC  
実行時間 132 ms / 2,000 ms
+ 1µs
コード長 684 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 65 ms
コンパイル使用メモリ 15,104 KB
実行使用メモリ 11,136 KB
平均クエリ数 84.22
最終ジャッジ日時 2026-09-19 13:02:11
合計ジャッジ時間 5,619 ms
ジャッジサーバーID
(参考情報)
judge3_0 / <nil>
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 50
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys

p = int(input())
low, high = [-1] * p, [-1] * p
used_low, used_high = [False] * p, [False] * p
for i in range(p - 1):
    print("?", i + 1, i + 1, flush=True)
    value = int(input())
    if value == -1: raise SystemExit
    low[i] = (value - 1) % p
    high[i] = value - 1 - low[i]
    used_low[low[i]] = used_high[high[i] // p] = True
low[-1] = used_low.index(False)
high[-1] = used_high.index(False) * p
print("?", 1, p, flush=True)
value = int(input())
if value == -1: raise SystemExit
low_rows = value == low[0] + high[-1] + 1
print("!")
for i in range(p):
    print(*(low[i] + high[j] + 1 if low_rows else high[i] + low[j] + 1 for j in range(p)))
sys.stdout.flush()
0