結果

問題 No.3088 XOR = SUM
ユーザー Today03
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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])
0