結果

問題 No.1152 10億ゲーム
ユーザー kimiyuki
提出日時 2020-08-16 01:29:28
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
RE  
実行時間 -
コード長 1,021 bytes
コンパイル時間 151 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 28,640 KB
平均クエリ数 24.68
最終ジャッジ日時 2024-07-17 05:55:07
合計ジャッジ時間 8,876 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 20 RE * 30
権限があれば一括ダウンロードができます

ソースコード

diff #

#!/usr/bin/env python3
import sys
from typing import *

def pack(x: int, y: int) -> int:
    return 2 ** x * 5 ** y

def unpack(n: int) -> Tuple[int, int]:
    x, y = 0, 0
    while n % 2 == 0:
        x += 1
        n //= 2
    while n % 5 == 0:
        y += 1
        n //= 5
    assert n == 1
    return x, y

H = 10
W = 10
def solve(a: int, b: int) -> int:
    ax, ay = unpack(a)
    bx, by = unpack(b)
    if abs(bx - ax) + abs(by - ay) == 1:
        ax = bx
        ay = by
    elif bx <= ax - 2:
        ax -= 1
    elif bx >= ax + 2:
        ax += 1
    elif by < ay:
        ay -= 1
    elif by > ay:
        ay += 1
    elif bx < ax:
        ax -= 1
    elif bx > ax:
        ax += 1
    else:
        assert False
    return pack(ax, ay)

def main():
    a, b = map(int, input().split())
    while True:
        a = solve(a, b)
        print(a)
        sys.stdout.flush()
        if a == b:
            break
        b = int(input())
        if a == b:
            break

if __name__ == '__main__':
    main()
0