結果

問題 No.545 ママの大事な二人の子供
ユーザー sasa8uyauya
提出日時 2024-09-30 02:18:00
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 201 ms / 2,000 ms
コード長 543 bytes
コンパイル時間 162 ms
コンパイル使用メモリ 82,196 KB
実行使用メモリ 83,712 KB
最終ジャッジ日時 2024-09-30 02:18:05
合計ジャッジ時間 4,034 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 32
権限があれば一括ダウンロードができます

ソースコード

diff #

n=int(input())
c=[]
for i in range(n):
	a,b=map(int,input().split())
	c+=[(a,-b)]
X=10**20
g=X
if n<=16:
	for i in range(1<<n):
		p=0
		for j in range(n):
			p+=c[j][(i>>j)&1]
		g=min(g,abs(p))
else:
	pl=[]
	for i in range(1<<(n//2)):
		p=0
		for j in range(n//2):
			p+=c[j][(i>>j)&1]
		pl+=[p]
	pl.sort()
	pr=[-X,X]
	for i in range(1<<(n-n//2)):
		p=0
		for j in range(n-n//2):
			p+=c[n//2+j][(i>>j)&1]
		pr+=[p]
	pr.sort()
	from bisect import bisect_left
	for v in pl:
		y=bisect_left(pr,-v)
		g=min(g,abs(v+pr[y]),abs(v+pr[y-1]))
print(g)
0