結果
| 問題 |
No.3162 Five Two Three
|
| コンテスト | |
| ユーザー |
Kude
|
| 提出日時 | 2025-05-23 20:32:37 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,240 bytes |
| コンパイル時間 | 380 ms |
| コンパイル使用メモリ | 82,904 KB |
| 実行使用メモリ | 54,368 KB |
| 最終ジャッジ日時 | 2025-05-23 20:33:11 |
| 合計ジャッジ時間 | 13,784 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 101 WA * 86 |
ソースコード
x, y, z = map(int, input().split())
def f(a, z):
s = 1, 0
t = 0, 1
bl = 0
br = a
i = 1
ans = []
if a == 0:
ans.append([0, z])
ans.append([0, z, z])
return ans
while bl <= br:
t0, t1 = t
# a*t0+b*t1 = z
if (z - a * t0) % t1 == 0:
b = (z - a * t0) // t1
if bl <= b <= br:
res = [a, b]
j = 1
while j < i:
res.append(res[j-1] - res[j])
j += 1
assert len(res) == j + 1 and res[j] == z
ans.append(res)
s, t = t, (s[0] - t[0], s[1] - t[1])
i += 1
if i % 2 == 0:
t0 = t[0]
t1 = -t[1]
assert t0 > 0 and t1 > 0
br = min(br, a * t0 // t1)
else:
t0 = -t[0]
t1 = t[1]
assert t0 > 0 and t1 > 0
bl = max(bl, (a * t0 + t1 - 1) // t1)
return ans
dl = f(x, z)
dr = f(y, z)
ans = None
for p in dl:
for q in dr:
if abs(p[-2] - q[-2]) == z and (ans is None or len(p) + len(q) - 1 < len(ans)):
ans = p + q[-2::-1]
if not ans:
print(-1)
else:
print(len(ans))
print(*ans)
Kude