結果

問題 No.3501 Digit Products 2
コンテスト
ユーザー titia
提出日時 2026-04-20 01:28:43
言語 Python3
(3.14.3 + numpy 2.4.4 + scipy 1.17.1)
コンパイル:
python3 -mpy_compile _filename_
実行:
python3 _filename_
結果
RE  
実行時間 -
コード長 1,206 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 528 ms
コンパイル使用メモリ 20,696 KB
実行使用メモリ 40,660 KB
平均クエリ数 2.00
最終ジャッジ日時 2026-04-20 01:29:22
合計ジャッジ時間 31,665 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample RE * 1
other WA * 11 RE * 61
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys
input = sys.stdin.readline

N=int(input())

A=[-1]*N
E=[[] for i in range(N)]

for i in range(N-1):
    print("?",N-1,i,flush=True)
    ret=int(input())

    A[i]=ret
    E[N-1].append((i,ret))
    E[i].append((N-1,ret))

X=[]

for i in range(N):
    if A[i]>0:
        X.append(i)

if len(X)>=2:
    x=X[0]
    y=X[1]

    print("?",x,y,flush=True)
    ret=int(input())
    E[x].append((y,ret))
    E[y].append((x,ret))


ANS=[]

for i in range(1,10):
    flag=1
    S=[-1]*N
    for j in range(N):
        if A[j]==0:
            S[j]=0

    S[N-1]=i
    Q=[N-1]
    while Q:
        x=Q.pop()
        for to,kake in E[x]:
            if S[to]==-1:
                if kake%S[x]==0:
                    S[to]=kake//S[x]
                    Q.append(to)
                else:
                    flag=0
                    break
            else:
                if kake%S[x]==0 and S[to]==kake//S[x]:
                    pass
                else:
                    flag=0
                    break

    if flag==1:
        ANS.append(S)

if len(ANS)==1:
    S=ANS[0]
    S.reverse()
    S="".join(map(str,S))

    print("!",S,flush=True)
else:
    print("!",-1,flush=True)
            





0