結果
| 問題 |
No.2397 ω冪
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 19:07:32 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,294 bytes |
| コンパイル時間 | 180 ms |
| コンパイル使用メモリ | 81,936 KB |
| 実行使用メモリ | 84,896 KB |
| 最終ジャッジ日時 | 2025-06-12 19:07:40 |
| 合計ジャッジ時間 | 7,178 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 26 WA * 15 |
ソースコード
def read_binary(s):
return int(s, 2)
def get_exponents(n):
exponents = []
while n > 0:
# Count trailing zeros
b = 0
while (n & 1) == 0:
b += 1
n >>= 1
exponents.append(b)
# Now, n is odd: n = 2a + 1
a = (n - 1) // 2
n = a
return exponents
def compare_exponents(e1, e2):
e1_sorted = sorted(e1, reverse=True)
e2_sorted = sorted(e2, reverse=True)
# Compare as if they are numbers in base infinity
len1 = len(e1_sorted)
len2 = len(e2_sorted)
min_len = min(len1, len2)
for i in range(min_len):
a = e1_sorted[i]
b = e2_sorted[i]
if a < b:
return -1
elif a > b:
return 1
if len1 < len2:
return -1
elif len1 > len2:
return 1
else:
return 0
def main():
import sys
input = sys.stdin.read().split()
if len(input) < 2:
print("No")
return
N_bin, M_bin = input[0], input[1]
N = read_binary(N_bin)
M = read_binary(M_bin)
exponents_N = get_exponents(N)
exponents_M = get_exponents(M)
cmp = compare_exponents(exponents_N, exponents_M)
if cmp < 0:
print("Yes")
else:
print("No")
if __name__ == "__main__":
main()
gew1fw