#include<bits/stdc++.h>
using namespace std;
int n, k, z;
long long dp[100005][10];
long long sol(int arr[], int pos, int total, int left) {
if (pos >= n || pos < 0 || total == 0) return 0;
if (dp[pos][left] != -1) return dp[pos][left];
long long ret = 0;
if (pos < n)ret = max(ret, arr[pos] + sol(arr, pos + 1, total - 1, left));
if (left && pos > 0 && total) {
ret = max(ret, sol(arr, pos - 1, total - 1, left - 1) + arr[pos]);
}
return dp[pos][left] = ret;
}
int main() {
int cs;
scanf("%d", &cs);
while (cs--) {
memset(dp, -1, sizeof(dp));
scanf("%d %d %d", &n, &k, &z);
int arr[n];
for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
long long ans = sol(arr, 1, k, z) + arr[0];
printf("%lld\n", ans);
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgppbnQgbiwgaywgejsKbG9uZyBsb25nIGRwWzEwMDAwNV1bMTBdOwoKbG9uZyBsb25nIHNvbChpbnQgYXJyW10sIGludCBwb3MsIGludCB0b3RhbCwgaW50IGxlZnQpIHsKCglpZiAocG9zID49IG4gfHwgcG9zIDwgMCB8fCB0b3RhbCA9PSAwKSByZXR1cm4gMDsKCWlmIChkcFtwb3NdW2xlZnRdICE9IC0xKSByZXR1cm4gZHBbcG9zXVtsZWZ0XTsKCWxvbmcgbG9uZyByZXQgPSAwOwoJaWYgKHBvcyA8IG4pcmV0ID0gbWF4KHJldCwgYXJyW3Bvc10gKyBzb2woYXJyLCBwb3MgKyAxLCB0b3RhbCAtIDEsIGxlZnQpKTsKCglpZiAobGVmdCAmJiBwb3MgPiAwICYmIHRvdGFsKSB7CgkJcmV0ID0gbWF4KHJldCwgc29sKGFyciwgcG9zIC0gMSwgdG90YWwgLSAxLCBsZWZ0IC0gMSkgKyBhcnJbcG9zXSk7Cgl9CgoKCXJldHVybiBkcFtwb3NdW2xlZnRdID0gcmV0OwoKfQoKCgppbnQgbWFpbigpIHsKCWludCBjczsKCXNjYW5mKCIlZCIsICZjcyk7Cgl3aGlsZSAoY3MtLSkgewoJCW1lbXNldChkcCwgLTEsIHNpemVvZihkcCkpOwoJCXNjYW5mKCIlZCAlZCAlZCIsICZuLCAmaywgJnopOwoJCWludCBhcnJbbl07CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHNjYW5mKCIlZCIsICZhcnJbaV0pOwoJCWxvbmcgbG9uZyBhbnMgPSBzb2woYXJyLCAxLCBrLCB6KSArIGFyclswXTsKCQlwcmludGYoIiVsbGRcbiIsIGFucyk7Cgl9Cn0=