結果
| 問題 | 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)  
            
            
            
        