結果
| 問題 |
No.3162 Five Two Three
|
| コンテスト | |
| ユーザー |
Kude
|
| 提出日時 | 2025-05-23 20:39:53 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,892 bytes |
| コンパイル時間 | 409 ms |
| コンパイル使用メモリ | 82,712 KB |
| 実行使用メモリ | 54,800 KB |
| 最終ジャッジ日時 | 2025-05-23 20:40:09 |
| 合計ジャッジ時間 | 14,718 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 97 WA * 90 |
ソースコード
x, y, z = map(int, input().split())
if x == y == z == 0:
print(3)
print(0, 0, 0)
exit()
if x == z == 0:
print(6)
print(0, y, y, 0, y, y)
exit()
if y == z == 0:
print(6)
print(x, x, 0, x, x, 0)
exit()
if x == y == 0:
print(4)
print(0, z, z, 0)
exit()
def f(a, z):
s = 1, 0
t = 0, 1
bl = 0
br = a
i = 1
ans = []
if a == 0:
s = 0
t = 1
i = 1
while True:
if t <= z:
if t % z == 0:
b = t // z
res = [a, b]
j = 1
while j < i:
res.append(res[j-1] + res[j])
j += 1
ans.append(res)
else:
break
s, t = t, s + t
i += 1
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