题意使用 openssl enc -aes256 -pbkdf2 加密。
U2FsdGVkX1/pFyM6ex65XOnzO7af9rPopCTtRVWnqjbCrXGBrNoshbyxGeHvil2s
n6+XriANCfQ/bRPUjDlwt9Slm4EBsOr/2Fphwl0URvUKufnhA0SZrKjWu2zqe0ts
70q41Zz3/3XS/uXY9pV/54Ryc3jXUqIFQ7wFY66DwjAyk5Qy1Fa58IL8trJN9mod
y+s10tm4Vr98vwLYn5tKkQlxc8fYwk1lXCoSRHwgFOEey1aadDRXeeETpWehQq6Q
yx7FFhuF4zS4ZvHOV1+VZ3V5noIyt0ekyN4Q+5hb/zNPPRJ5YjggF5eE7s6YghvP
解析
贡献的计算式子可以转化成:。也就是说对于每一个配对正好有一个贡献为 ,一个贡献为 ,对于所有二元组就是恰好有一半贡献为 ,其他为 。于是考虑贪心,先假设全部贡献 ,在减去 的前 小的和。
int main()
{
int n;
scanf("%d", &n);
std::vector<std::pair<int, int>> a(n);
for (auto &[l, r] : a) scanf("%d%d", &l, &r);
long long ans = 0;
for (auto [_, r] : a) ans += r;
std::vector<long long> lr;
for (auto [l, r] : a) lr.emplace_back(l + r);
std::sort(lr.begin(), lr.end());
for (int i = 0; i < n / 2; i++) {
ans -= lr[i];
}
printf("%lld\n", ans);
}