#include <iostream>
#include <vector>
#include <algorithm>
#include <climits>
using namespace std;
int find_best_sum_subarray(int n, const vector<int>& b, int k) {
vector<int> p(n, 0);
// Compute prefix sums
p[0] = b[0];
for (int i = 1; i < n; ++i) {
p[i] = b[i] + p[i - 1];
}
int final_ans = INT_MIN;
// Find the best sum subarray ending at each index j with size <= k
for (int j = 0; j < n; ++j) {
int r = INT_MIN;
for (int l = j; l >= max(0, j - k + 1); --l) {
int sum_subarray = p[j] - (l > 0 ? p[l - 1] : 0);
r = max(r, sum_subarray);
}
final_ans = max(final_ans, r);
}
return final_ans;
}
int main() {
int n = 6; // Example value for n
vector<int> b = {-1, -3, 4, 3, -2, 2}; // 0-based input array
int k = 4; // Example value for k
int result = find_best_sum_subarray(n, b, k);
cout << result << endl; // Output the result
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8Y2xpbWl0cz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgZmluZF9iZXN0X3N1bV9zdWJhcnJheShpbnQgbiwgY29uc3QgdmVjdG9yPGludD4mIGIsIGludCBrKSB7CiAgICB2ZWN0b3I8aW50PiBwKG4sIDApOwoKICAgIC8vIENvbXB1dGUgcHJlZml4IHN1bXMKICAgIHBbMF0gPSBiWzBdOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuOyArK2kpIHsKICAgICAgICBwW2ldID0gYltpXSArIHBbaSAtIDFdOwogICAgfQoKICAgIGludCBmaW5hbF9hbnMgPSBJTlRfTUlOOwoKICAgIC8vIEZpbmQgdGhlIGJlc3Qgc3VtIHN1YmFycmF5IGVuZGluZyBhdCBlYWNoIGluZGV4IGogd2l0aCBzaXplIDw9IGsKICAgIGZvciAoaW50IGogPSAwOyBqIDwgbjsgKytqKSB7CiAgICAgICAgaW50IHIgPSBJTlRfTUlOOwogICAgICAgIGZvciAoaW50IGwgPSBqOyBsID49IG1heCgwLCBqIC0gayArIDEpOyAtLWwpIHsKICAgICAgICAgICAgaW50IHN1bV9zdWJhcnJheSA9IHBbal0gLSAobCA+IDAgPyBwW2wgLSAxXSA6IDApOwogICAgICAgICAgICByID0gbWF4KHIsIHN1bV9zdWJhcnJheSk7CiAgICAgICAgfQogICAgICAgIGZpbmFsX2FucyA9IG1heChmaW5hbF9hbnMsIHIpOwogICAgfQoKICAgIHJldHVybiBmaW5hbF9hbnM7Cn0KCmludCBtYWluKCkgewogICAgaW50IG4gPSA2OyAgLy8gRXhhbXBsZSB2YWx1ZSBmb3IgbgogICAgdmVjdG9yPGludD4gYiA9IHstMSwgLTMsIDQsIDMsIC0yLCAyfTsgIC8vIDAtYmFzZWQgaW5wdXQgYXJyYXkKICAgIGludCBrID0gNDsgIC8vIEV4YW1wbGUgdmFsdWUgZm9yIGsKICAgIGludCByZXN1bHQgPSBmaW5kX2Jlc3Rfc3VtX3N1YmFycmF5KG4sIGIsIGspOwogICAgY291dCA8PCByZXN1bHQgPDwgZW5kbDsgIC8vIE91dHB1dCB0aGUgcmVzdWx0CgogICAgcmV0dXJuIDA7Cn0=