結果

問題 No.1152 10億ゲーム
ユーザー kimiyukikimiyuki
提出日時 2020-08-16 01:29:28
言語 Python3
(3.12.2 + numpy 1.26.4 + scipy 1.12.0)
結果
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
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 120 ms
28,008 KB
testcase_01 AC 120 ms
28,384 KB
testcase_02 RE -
testcase_03 RE -
testcase_04 AC 118 ms
28,256 KB
testcase_05 RE -
testcase_06 RE -
testcase_07 RE -
testcase_08 AC 119 ms
28,080 KB
testcase_09 AC 117 ms
28,008 KB
testcase_10 AC 117 ms
28,136 KB
testcase_11 AC 118 ms
27,872 KB
testcase_12 RE -
testcase_13 RE -
testcase_14 RE -
testcase_15 RE -
testcase_16 AC 120 ms
28,392 KB
testcase_17 RE -
testcase_18 RE -
testcase_19 RE -
testcase_20 AC 118 ms
28,128 KB
testcase_21 AC 120 ms
28,000 KB
testcase_22 AC 119 ms
28,000 KB
testcase_23 AC 121 ms
28,128 KB
testcase_24 RE -
testcase_25 RE -
testcase_26 RE -
testcase_27 RE -
testcase_28 RE -
testcase_29 RE -
testcase_30 RE -
testcase_31 RE -
testcase_32 RE -
testcase_33 RE -
testcase_34 RE -
testcase_35 RE -
testcase_36 RE -
testcase_37 RE -
testcase_38 AC 120 ms
28,000 KB
testcase_39 AC 119 ms
27,744 KB
testcase_40 AC 119 ms
28,256 KB
testcase_41 AC 120 ms
28,000 KB
testcase_42 RE -
testcase_43 RE -
testcase_44 RE -
testcase_45 RE -
testcase_46 AC 118 ms
28,128 KB
testcase_47 AC 120 ms
28,384 KB
testcase_48 AC 118 ms
28,000 KB
testcase_49 AC 118 ms
27,872 KB
権限があれば一括ダウンロードができます

ソースコード

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