結果
問題 |
No.545 ママの大事な二人の子供
|
ユーザー |
|
提出日時 | 2025-02-28 16:21:01 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,090 bytes |
コンパイル時間 | 831 ms |
コンパイル使用メモリ | 82,644 KB |
実行使用メモリ | 84,648 KB |
最終ジャッジ日時 | 2025-02-28 16:21:06 |
合計ジャッジ時間 | 5,003 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | WA * 12 RE * 20 |
ソースコード
import bisect N = int(input()) satis = [] for i in range(N): a,b = map(int,input().split()) satis.append((a,b)) half = N // 2 left = satis[:half] right = satis[half:] right_sum = [] left_sum = [] for i in range(2**(len(left))): R = 0 L = 0 for j in range(len(left)): wari = 2**j if((i // wari) % 2 == 1): R += left[j][0] else: L += left[j][1] left_sum.append(R - L) for i in range(2**(len(right))): R = 0 L = 0 for j in range(len(right)): wari = 2**j if((i // wari) % 2 == 1): R += right[j][0] else: L += right[j][1] right_sum.append(R - L) right_sum.sort() ans = float('inf') for x in left_sum: pos = bisect.bisect_left(right_sum,-x) if(pos < len(right_sum) and pos > 0): ans = min(ans,x + right_sum[pos],x + right_sum[pos+1],x + right_sum[pos-1]) elif(pos == 0): ans = min(ans,x + right_sum[pos],x + right_sum[pos+1]) else: ans = min(ans,x + right_sum[pos],x + right_sum[pos-1]) print(ans)