link
首先假设全都选金币,设 \(d_i=B_i-A_i,e_i=C_i-A_i\),则我们需要选出 \(y\) 个 \(d\) 和 \(z\) 个 \(e\)。考虑当 \(i\) 选 \(d\),\(j\) 选 \(e\) 时必有 \(d_i+e_j\ge e_i+d_j\),移项得 \(d_i-e_i\ge d_j-e_j\)。
这样,我们可以按 \(d_i-e_i\) 排序,并枚举一个 \(k\),显然要在 \([1,k]\) 中选出 \(y\) 个 \(d\),在 \([k+1,n]\) 中选出 \(z\) 个 \(e\),可以用小根对维护处每个前缀和后缀,然后加起来即可。
时间复杂度 \(O(n\log n)\)。