結果
| 問題 |
No.2104 Multiply-Add
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 21:49:26 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,122 bytes |
| コンパイル時間 | 146 ms |
| コンパイル使用メモリ | 82,128 KB |
| 実行使用メモリ | 54,600 KB |
| 最終ジャッジ日時 | 2025-06-12 21:54:55 |
| 合計ジャッジ時間 | 5,191 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 9 WA * 23 |
ソースコード
def solve():
import sys
a, b, c, d = map(int, sys.stdin.readline().split())
if a == c and b == d:
print(0)
return
if (a == 0 and b == 0):
if c == 0 and d == 0:
print(0)
else:
print(-1)
return
if (a == c) and (b == d):
print(0)
return
if (c == 0):
k = -b
if b == 0:
print(-1)
return
if a + k * b == c:
print(1)
print(1, k)
return
if (d == 0):
k = -a
if a == 0:
print(-1)
return
if b + k * a == d:
print(1)
print(2, k)
return
def try_case(k1, k2, k3, k4):
x = a
y = b
for t, k in zip([1, 2, 1, 2], [k1, k2, k3, k4]):
if t == 1:
nx = x + k * y
if abs(nx) > 1e9:
return False
x = nx
else:
ny = y + k * x
if abs(ny) > 1e9:
return False
y = ny
if x == c and y == d:
return (k1, k2, k3, k4)
return False
if try_case(3, 1, -2, -1):
print(4)
print("1 3")
print("2 1")
print("1 -2")
print("2 -1")
return
if try_case(-3, -1, 2, 1):
print(4)
print("1 -3")
print("2 -1")
print("1 2")
print("2 1")
return
if try_case(-3, 1, 2, -1):
print(4)
print("1 -3")
print("2 1")
print("1 2")
print("2 -1")
return
if try_case(3, -1, -2, 1):
print(4)
print("1 3")
print("2 -1")
print("1 -2")
print("2 1")
return
if try_case(1, 1, 1, 1):
print(4)
print("1 1")
print("2 1")
print("1 1")
print("2 1")
return
if try_case(-1, -1, -1, -1):
print(4)
print("1 -1")
print("2 -1")
print("1 -1")
print("2 -1")
return
print(-1)
solve()
gew1fw