fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6. int main() {
  7. ios_base::sync_with_stdio(false);
  8. cin.tie(NULL);
  9.  
  10. int t;
  11. cin >> t;
  12. while (t--) {
  13. int n, k;
  14. cin >> n >> k;
  15. long long sum = 0;
  16. vector<int> v(n + 1);
  17. for (int i = 1; i <= n; i++) {
  18. cin >> v[i];
  19. sum += v[i];
  20. }
  21.  
  22. if (k >= n - 1) {
  23. cout << sum << endl;
  24. continue;
  25. }
  26.  
  27. vector<long long> dif(n + 1);
  28. long long mx = 0, mxINd = 0;
  29. for (int i = 2; i <= n; i++) {
  30. dif[i] = abs(v[i] - v[i - 1]);
  31. if (dif[i] > mx) {
  32. mx = dif[i];
  33. mxINd = i;
  34. }
  35. }
  36.  
  37. if (mx == 0) {
  38. cout << sum << endl;
  39. continue;
  40. }
  41.  
  42. while (k--) {
  43. sum -= mx;
  44. v[mxINd] = min(v[mxINd], v[mxINd - 1]);
  45. v[mxINd - 1] = min(v[mxINd], v[mxINd - 1]);
  46. mx = 0;
  47. for (int i = 2; i <= n; i++) {
  48. dif[i] = abs(v[i] - v[i - 1]);
  49. if (dif[i] > mx) {
  50. mx = dif[i];
  51. mxINd = i;
  52. }
  53. }
  54. }
  55. cout << sum << endl;
  56. }
  57. return 0;
  58. }
  59.  
Success #stdin #stdout 0.01s 5308KB
stdin
Standard input is empty
stdout
Standard output is empty