結果

問題 No.2104 Multiply-Add
ユーザー gew1fw
提出日時 2025-06-12 17:10:35
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 2,122 bytes
コンパイル時間 232 ms
コンパイル使用メモリ 81,804 KB
実行使用メモリ 54,232 KB
最終ジャッジ日時 2025-06-12 17:10:41
合計ジャッジ時間 5,145 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 9 WA * 23
権限があれば一括ダウンロードができます

ソースコード

diff #

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()
0