結果
問題 |
No.1152 10億ゲーム
|
ユーザー |
|
提出日時 | 2020-08-16 01:32:43 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,215 bytes |
コンパイル時間 | 129 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 28,576 KB |
平均クエリ数 | 24.76 |
最終ジャッジ日時 | 2024-07-17 05:54:52 |
合計ジャッジ時間 | 9,333 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 RE * 30 |
ソースコード
#!/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) swappped = False if abs(bx - ax) > abs(by - ay): swappped = True ax, ay = ay, ax bx, by = by, bx 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 if swappped: ax, ay = ay, ax bx, by = by, bx 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()