結果

問題 No.282 おもりと天秤(2)
コンテスト
ユーザー titia
提出日時 2026-08-20 03:35:56
言語 PyPy3
(7.3.23)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 671 ms / 5,000 ms
+ 5µs
コード長 1,242 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 242 ms
コンパイル使用メモリ 95,984 KB
実行使用メモリ 87,464 KB
平均クエリ数 267.12
最終ジャッジ日時 2026-08-20 03:36:57
合計ジャッジ時間 9,084 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 24
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys
input = sys.stdin.readline

N=int(input())

X=[[-2]*(N+1) for i in range(N+1)]


qq=0
while True:
    qq+=1
    A=[0]*(N*2)
    USE=[0]*(N+1)

    ind=0

    for i in range(1,N+1):
        if ind+1>=len(A):
            break
        for j in range(i+1,N+1):
            if USE[i]==0 and USE[j]==0 and X[i][j]==-2:
                if ind+1<len(A):
                    A[ind]=i
                    A[ind+1]=j
                    ind+=2
                    USE[i]=1
                    USE[j]=1

            if ind+1>=len(A):
                break

    if max(A)==0:
        break

    print("?",*A,flush=True)
    ret=input().split()
    for i in range(0,len(A),2):
        if i+1<len(A):
            k=A[i]
            j=A[i+1]

            if ret[i//2]=="=":
                X[k][j]=0
            elif ret[i//2]==">":
                X[k][j]=1
            else:
                X[k][j]=-1

ANS=[0]*(N+1)

for i in range(1,N+1):
    for j in range(1,N+1):
        if X[i][j]==1:
            ANS[i]+=1
        elif X[i][j]==-1:
            ANS[j]+=1

LL=[]
for i in range(1,N+1):
    LL.append((ANS[i],i))

LL.sort()

LANS=[LL[i][1] for i in range(len(LL))]

print("!",*LANS,flush=True)
                
                

    

    
0