#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
int T;
cin >> T;
while (T--)
{
int n, m;
long long res = 0, sum = 0,d;
cin >> n >> m >> d;
priority_queue<int, vector<int>, greater<int>> Q;
for (int i = 1; i <= n; ++i)
{
int ai;
cin >> ai;
if (ai + sum - d * i > res)
res = ai + sum - d * i;
if (ai > 0)
{
Q.push(ai);
sum += ai;
}
if (Q.size() == (size_t)m)
{
sum -= Q.top();
Q.pop();
}
}
cout << res << endl;
}
return 0;
}
203. Remove Linked List Elements | 733. Flood Fill |
206. Reverse Linked List | 83. Remove Duplicates from Sorted List |
116. Populating Next Right Pointers in Each Node | 145. Binary Tree Postorder Traversal |
94. Binary Tree Inorder Traversal | 101. Symmetric Tree |
77. Combinations | 46. Permutations |
226. Invert Binary Tree | 112. Path Sum |
1556A - A Variety of Operations | 136. Single Number |
169. Majority Element | 119. Pascal's Triangle II |
409. Longest Palindrome | 1574A - Regular Bracket Sequences |
1574B - Combinatorics Homework | 1567A - Domino Disaster |
1593A - Elections | 1607A - Linear Keyboard |
EQUALCOIN Equal Coins | XOREQN Xor Equation |
MAKEPAL Weird Palindrome Making | HILLSEQ Hill Sequence |
MAXBRIDGE Maximise the bridges | WLDRPL Wildcard Replacement |
1221. Split a String in Balanced Strings | 1002. Find Common Characters |