結果
問題 | No.1152 10億ゲーム |
ユーザー | smallcopse |
提出日時 | 2020-08-07 23:09:00 |
言語 | Python3 (3.12.2 + numpy 1.26.4 + scipy 1.12.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,561 bytes |
コンパイル時間 | 136 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 27,824 KB |
平均クエリ数 | 24.08 |
最終ジャッジ日時 | 2024-07-17 05:12:29 |
合計ジャッジ時間 | 8,473 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 113 ms
27,488 KB |
testcase_01 | AC | 111 ms
27,488 KB |
testcase_02 | WA | - |
testcase_03 | WA | - |
testcase_04 | AC | 111 ms
27,112 KB |
testcase_05 | WA | - |
testcase_06 | WA | - |
testcase_07 | WA | - |
testcase_08 | AC | 110 ms
27,232 KB |
testcase_09 | AC | 111 ms
26,984 KB |
testcase_10 | AC | 111 ms
27,488 KB |
testcase_11 | AC | 111 ms
27,368 KB |
testcase_12 | WA | - |
testcase_13 | WA | - |
testcase_14 | WA | - |
testcase_15 | WA | - |
testcase_16 | AC | 111 ms
27,240 KB |
testcase_17 | WA | - |
testcase_18 | WA | - |
testcase_19 | WA | - |
testcase_20 | AC | 110 ms
27,496 KB |
testcase_21 | AC | 108 ms
27,616 KB |
testcase_22 | AC | 109 ms
27,488 KB |
testcase_23 | AC | 112 ms
27,232 KB |
testcase_24 | WA | - |
testcase_25 | WA | - |
testcase_26 | WA | - |
testcase_27 | WA | - |
testcase_28 | WA | - |
testcase_29 | WA | - |
testcase_30 | WA | - |
testcase_31 | WA | - |
testcase_32 | WA | - |
testcase_33 | WA | - |
testcase_34 | WA | - |
testcase_35 | WA | - |
testcase_36 | WA | - |
testcase_37 | WA | - |
testcase_38 | AC | 111 ms
27,232 KB |
testcase_39 | AC | 109 ms
27,488 KB |
testcase_40 | AC | 110 ms
26,976 KB |
testcase_41 | AC | 112 ms
27,240 KB |
testcase_42 | WA | - |
testcase_43 | WA | - |
testcase_44 | WA | - |
testcase_45 | WA | - |
testcase_46 | AC | 112 ms
27,368 KB |
testcase_47 | AC | 112 ms
27,104 KB |
testcase_48 | AC | 113 ms
27,776 KB |
testcase_49 | AC | 111 ms
26,984 KB |
ソースコード
def prime_factorize(n): a = [] while n % 2 == 0: a.append(2) n //= 2 f = 3 while f * f <= n: if n % f == 0: a.append(f) n //= f else: f += 2 if n != 1: a.append(n) return a def main(): x1, x2 = map(int, input().split()) # 素因数分解して2の数と5の数を数える y1 = prime_factorize(x1) y2 = prime_factorize(x2) my_n2 = y1.count(2) my_n5 = y1.count(5) kiri_n2 = y2.count(2) kiri_n5 = y2.count(5) # print(y1, my_n2, my_n5) # print(y2, kiri_n2, kiri_n5) # 戦略: 2の数と5の数が相手と一致するように数を選んでいく turn = 1 while x1 != x2 and turn <= 35: # 自分の番 # 2の数の差と5の数の差のうち、差の大きいほうの差を小さくする if abs(my_n2 - kiri_n2) > abs(my_n5 - kiri_n5): if my_n2 < kiri_n2: my_n2 += 1 x1 *= 2 elif my_n2 > kiri_n2: my_n2 -= 1 x1 = x1 // 2 else: if my_n5 < kiri_n5: my_n5 += 1 x1 *= 5 elif my_n5 > kiri_n5: my_n5 -= 1 x1 = x1 // 5 print(x1, flush=True) # 一致したら終了 if x1 == x2: return x2 = int(input()) y2 = prime_factorize(x2) kiri_n2 = y2.count(2) kiri_n5 = y2.count(5) turn += 1 if __name__ == '__main__': main()