本文主要是介绍codeforces(C++ Summation Game),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
翻译:
思路:
1、将数据从大到小排序
2、用前缀和
3、每次用总和减去2倍的乘-1的数,求最大值
代码:
#include <iostream>
#include<algorithm>
using namespace std;void solve() {int n, k, x;cin >> n >> k >> x;int A[200020] = {};for (int i = 1; i <= n; i++)cin >> A[i];sort(A + 1, A + n + 1, greater<int>());//降序排列for (int i = 1; i <= n; i++)A[i] += A[i - 1];int ans = -1e9;for (int i = 0; i <= k; i++)ans = max(ans, (A[n] - 2 * A[min(i + x, n)] + A[i]));cout << ans << "\n";
}int main()
{int tc;cin >> tc;while (tc--)solve();
}
这篇关于codeforces(C++ Summation Game)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!