Pagini recente » Cod sursa (job #91695) | Cod sursa (job #2726219) | Cod sursa (job #1827924) | Cod sursa (job #417489) | Cod sursa (job #3030389)
#include <fstream>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
constexpr int LIM = 50005;
int N, K, arr[LIM], sum[LIM], S;
int ans, ans_l, ans_r;
int main() {
fin >> N >> K;
for (int i = 1; i <= N; ++i) {
fin >> arr[i];
sum[i] = sum[i - 1] + arr[i];
}
int l = 1;
for (int i = 1; i <= N; ++i) {
S += arr[i];
if (i - l + 1 >= K) {
if (ans < S) {
ans = S;
ans_l = l;
ans_r = i;
}
int min_sum = 0, pos = 0;
for (int j = l; j <= i - K; ++j)
if (sum[j] - sum[l - 1] < min_sum) {
min_sum = sum[j] - sum[l - 1];
pos = j;
}
if (min_sum < 0) {
S -= min_sum;
l = pos + 1;
}
}
}
fout << ans_l << ' ' << ans_r << ' ' << ans;
fin.close();
fout.close();
return 0;
}