結果
| 問題 | 
                            No.282 おもりと天秤(2)
                             | 
                    
| コンテスト | |
| ユーザー | 
                             maspy
                         | 
                    
| 提出日時 | 2020-03-20 00:07:15 | 
| 言語 | Python3  (3.13.1 + numpy 2.2.1 + scipy 1.14.1)  | 
                    
| 結果 | 
                             
                                RE
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 1,709 bytes | 
| コンパイル時間 | 272 ms | 
| コンパイル使用メモリ | 12,928 KB | 
| 実行使用メモリ | 61,664 KB | 
| 平均クエリ数 | 15.71 | 
| 最終ジャッジ日時 | 2024-07-17 03:19:47 | 
| 合計ジャッジ時間 | 18,174 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | RE * 24 | 
ソースコード
#!/usr/bin/ python3.8
import sys
readline = sys.stdin.readline
import numpy as np
N = int(readline())
# DEBUG = True
DEBUG = False
class Interactive:
    def __init__(self):
        self.ques_cnt = 0
        self.create_data()
    def create_data(self):
        self.C = np.arange(1, N + 1)
        np.random.shuffle(self.C)
        self.wt = self.C.argsort()
        print(self.C)
        print(self.wt)
    def resp_ques(self, *args):
        LR = np.array(args) - 1
        L = self.wt[LR[::2]]
        R = self.wt[LR[1::2]]
        ret = np.zeros(N, 'U1')
        ret[L > R] = '>'
        ret[L < R] = '<'
        ret[L == R] = '='
        word = ' '.join(ret)
        return word + '\n'
    def resp_ans(self, *args):
        pass
if DEBUG:
    interactive = Interactive()
def question(*args, offset='?'):
    if offset is None:
        print(*args, flush=True)
    else:
        print(offset, *args, flush=True)
    if DEBUG:
        resp = interactive.resp_ques(*args)
        print(resp, end='')
        return resp
    else:
        return readline()
def answer(*args, offset='!'):
    if offset is None:
        print(*args, flush=True)
    else:
        print(offset, *args, flush=True)
    if DEBUG:
        interactive.resp_ans(*args)
    else:
        exit()
wt = np.zeros(N + 1, np.int32)
for i in range(1, 512):
    LR = []
    for L in range(N):
        R = L ^ i
        if L < R < N:
            LR.append(L + 1)
            LR.append(R + 1)
    LR += [0] * (N + N - len(LR))
    resp = np.array(question(*LR).rstrip().split())
    print(resp)
    LR = np.array(LR, np.int32)
    L = LR[::2]
    R = LR[1::2]
    wt[L] += (resp == '>')
    wt[R] += (resp == '<')
answer(*C)
            
            
            
        
            
maspy