結果

問題 No.3088 XOR = SUM
ユーザー AngrySadEight
提出日時 2025-04-04 22:41:38
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,310 ms / 2,000 ms
コード長 589 bytes
コンパイル時間 610 ms
コンパイル使用メモリ 82,128 KB
実行使用メモリ 77,992 KB
最終ジャッジ日時 2025-04-04 22:42:56
合計ジャッジ時間 37,086 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 22
権限があれば一括ダウンロードができます

ソースコード

diff #

def partition(X):
    a = 0
    b = 0
    msb = 0
    for i in range(0, 60):
        if (X >> i) & 1:
            msb = i
    for i in range(0, msb + 1):
        if (X >> i) & 1:
            if i == msb:
                a += (1 << i)
            else:
                b += (1 << i)
    return a, b

T = int(input())
for _ in range(T):
    N = int(input())
    msb = 0
    for i in range(0, 60):
        if (N >> i) & 1:
            msb = i
    
    a1, b1 = partition(N)
    a2, b2 = partition((1 << msb) - 1)
    if a1 * b1 > a2 * b2:
        print(a1, b1)
    else:
        print(a2, b2)
0