結果
問題 |
No.3088 XOR = SUM
|
ユーザー |
![]() |
提出日時 | 2025-04-04 22:25:15 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,779 ms / 2,000 ms |
コード長 | 653 bytes |
コンパイル時間 | 185 ms |
コンパイル使用メモリ | 82,532 KB |
実行使用メモリ | 77,732 KB |
最終ジャッジ日時 | 2025-04-04 22:26:46 |
合計ジャッジ時間 | 44,354 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge6 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 22 |
ソースコード
def jikken(): A=[] for N in range(0,100): X=0 Y=0 # a=0 # while 1<<(a+1)-1<=N: # a+=1 # N=(1<<a)-1 f=True for i in reversed(range(64)): if N&(2**i)>0: if f: X+=1<<i f=False else: Y+=1<<i if N>0 and X*Y<A[-1]: print(N-1,N,A[-1],X*Y) A.append(X*Y) print(A) # jikken() # print("OK") def solve(N): X=0 Y=0 f=True for i in reversed(range(64)): if N&(2**i)>0: if f: X+=1<<i f=False else: Y+=1<<i return (X*Y,X,Y) for _ in range(int(input())): N=int(input()) ans=solve(N) a=0 while (1<<(a+1))-1<=N: a+=1 N=(1<<a)-1 ans=max(ans,solve(N)) print(ans[1],ans[2])