Official
C - おやつの分配 / Snack Distribution Editorial
by
C - おやつの分配 / Snack Distribution Editorial
by
sounansya
\(d[i]\) を「お菓子 \(1\) から \(i\) までを高橋君・青木君にそれぞれ分配したときに、高橋君が受け取るお菓子の美味しさの合計と青木君が受け取るお菓子の美味しさの合計の差としてあり得る値の集合」と定義します。
\(d[i]\) は \(d[i-1]\) と \(A_i\) から簡単に計算することができます。また、答えは \(d[N]\) の要素の絶対値の最小値です。
import sys
input = sys.stdin.readline
n = int(input())
a = list(map(int, input().split()))
d = set([0])
for v in a:
dd = set()
for u in d:
dd.add(u - v)
dd.add(u + v)
d = dd
print(min(abs(u) for u in d))
posted:
last update:
