結果
| 問題 |
No.282 おもりと天秤(2)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-09-19 01:59:08 |
| 言語 | Python2 (2.7.18) |
| 結果 |
AC
|
| 実行時間 | 1,759 ms / 5,000 ms |
| コード長 | 712 bytes |
| コンパイル時間 | 684 ms |
| コンパイル使用メモリ | 7,040 KB |
| 実行使用メモリ | 25,472 KB |
| 平均クエリ数 | 220.33 |
| 最終ジャッジ日時 | 2024-07-16 21:28:15 |
| 合計ジャッジ時間 | 16,926 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 24 |
ソースコード
import sys
def puts(s):
print s
sys.stdout.flush()
N = int(raw_input())
win = [0] * N
even = 1 - N % 2
M = N - even
circle = [[i + 1, M - i - 1] for i in xrange((N - 1) / 2)]
for i in xrange(M):
pair = [[(p + i) % M + 1, (q + i) % M + 1] for p, q in circle]
if even:
pair += [[i + 1, N]]
pair += [[0, 0] for i in xrange(N - len(pair))]
query = "? " + " ".join(" ".join(map(str, p)) for p in pair)
puts(query)
reply = raw_input().split()
for i, s in enumerate(reply):
p, q = pair[i]
if s == ">": win[p - 1] += 1
if s == "<": win[q - 1] += 1
ans = [0] * N
for i, r in enumerate(win, 1):
ans[r] = i
puts("! " + " ".join(map(str, ans)))