結果
| 問題 |
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()