Pagini recente » Cod sursa (job #627104) | Cod sursa (job #2772160) | Cod sursa (job #2542915) | Cod sursa (job #1232765) | Cod sursa (job #1492715)
#include <cstdio>
#include <iostream>
#include <set>
#include <climits>
using namespace std;
int main() {
freopen("secv2.in", "r", stdin);
freopen("secv2.out", "w", stdout);
ios::sync_with_stdio(false);
cin.tie(0);
int s[50005], d[50005], n, k;
cin >> n >> k;
s[0] = 0;
for (int i = 1; i <= n; i++) {
int aux;
cin >> aux;
s[i] = s[i - 1] + aux;
}
int f = 1, b = 0, ans = LONG_MIN, inc, fin;
for (int i = k; i <= n; i++) {
while (f <= b && s[d[b]] < s[i]) {
b--;
}
b++;
d[b] = i;
}
for (int i = 0; i < n - k; i++) {
if (s[d[f]] - s[i] > ans) {
inc = i + 1;
fin = d[f];
ans = s[d[f]] - s[i];
}
if (i + k == d[f]) {
f++;
}
}
cout << inc << " " << fin << " " << ans;
return 0;
}