結果
| 問題 | No.3501 Digit Products 2 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-04-18 09:28:53 |
| 言語 | Python3 (3.14.3 + numpy 2.4.4 + scipy 1.17.1) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,475 bytes |
| 記録 | |
| コンパイル時間 | 465 ms |
| コンパイル使用メモリ | 20,828 KB |
| 実行使用メモリ | 40,832 KB |
| 平均クエリ数 | 11.05 |
| 最終ジャッジ日時 | 2026-04-18 09:29:28 |
| 合計ジャッジ時間 | 20,382 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | RE * 1 |
| other | WA * 45 RE * 27 |
ソースコード
N = int(input())
def bisearch(f, n):
l = 0
r = n
fl = f(l)
fr = f(r)
while l <= r:
m = (l + r) // 2
fm = f(m)
if fm == n:
return m
elif fm > n:
r = m - 1
fr = f(r)
else:
l = m + 1
fl = f(l)
def try_square_root(n2):
return bisearch(lambda n: n * n, n2)
def solve(n):
A = []
for i in range(n):
print(f"? {i} {(i+1)%n}")
a = int(input())
A.append(a)
if N % 2 == 1:
count = 1
for i in range(n):
if i % 2 == 0:
count *= A[i]
for i in range(n):
if i % 2 == 1:
if count % A[i] == 0:
count //= A[i]
else:
print("! -1")
return
sr = try_square_root(count)
if sr is None:
print("! -1")
return
X = [sr]
for i in range(1, n):
if X[i - 1] != 0 and A[i - 1] % X[i - 1] == 0:
X.append(A[i - 1] // X[i - 1])
else:
print("! -1")
return
print("! ", end="")
for i in reversed(range(n)):
print(X[i], end="")
print()
else:
for i in range(n):
if A[i] != 1:
print("! -1")
return
for i in reversed(range(n)):
print(1, end="")
solve(N)