結果

問題 No.3592 I Love LIS
コンテスト
ユーザー kidodesu
提出日時 2026-07-17 22:37:36
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 1,346 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 239 ms
コンパイル使用メモリ 96,104 KB
実行使用メモリ 92,032 KB
平均クエリ数 4272.69
最終ジャッジ日時 2026-07-17 22:38:09
合計ジャッジ時間 27,656 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 7 WA * 29
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

from random import randrange as R
from random import shuffle
def inp():
    return int(input())
    return R(1, 3)
def query0(s):
    if I[s] == 0:
        return 1
    else:
        return 2
def query1(l, r):
    if I[l] < I[r]:
        return 3
    else:
        return 2
n = int(input())
I = [i for i in range(n)]
shuffle(I)
cnt = 0
for i in range(n):
    print("?", *[1 if i == j else 0 for j in range(n)], flush = True)
    cnt += 1
    x = inp()
    #x = query0(i)
    if x == 1:
        p0 = i
        break

from sys import setrecursionlimit as srl
srl(10**6)
X = [i for i in range(n) if i != p0]
def main(l, r):
    if l == r: return []
    if l+1 == r: return [X[l]]
    m = (l+r) >> 1
    A0 = main(l, m)[::-1]
    A1 = main(m, r)[::-1]
    B = []
    while A0 and A1:
        rep = [0] * n
        rep[A0[-1]] = 1
        rep[A1[-1]] = 2
        global cnt
        cnt += 1
        print("?", *rep, flush = True)
        x = inp()
        #x = query1(A0[-1], A1[-1])
        if x == 3:
            B.append(A0.pop())
        else:
            B.append(A1.pop())
    while A0:
        B.append(A0.pop())
    while A1:
        B.append(A1.pop())
    return B
Ans = [p0] + main(0, n-1)
Y = [0] * n
for i in range(1, n+1):
    Y[Ans[i-1]] = i
print("!", *Y)
#print("Yes" if Y == [i+1 for i in I] else "No")
#print(cnt)
assert cnt <= 12000
0