Pagini recente » Cod sursa (job #2358962) | Cod sursa (job #697199) | Cod sursa (job #2259536) | Cod sursa (job #505302) | Cod sursa (job #209688)
Cod sursa(job #209688)
// http://infoarena.ro/problema/secv2
#define _CRT_SECURE_NO_DEPRECATE
#include <cstdio>
#include <deque>
using namespace std;
//deque<int> M;
const int NMAX = 50001;
int A[NMAX], S[NMAX], M[NMAX];
int Ans[NMAX], Used[NMAX];
int main() {
freopen("secv2.in", "r", stdin);
freopen("secv2.out", "w", stdout);
int n, k;
scanf("%d %d", &n, &k);
int i;
for (i = 0; i < n; ++ i) {
scanf("%d", &A[i]);
if (i == 0) {
S[i] = A[i];
M[i] = 0;
} else {
S[i] = S[i - 1] + A[i];
if (S[M[i - 1]] < S[i])
M[i] = M[i - 1];
else
M[i] = i;
}
}
for (i = k - 1; i < n; ++ i) {
Ans[i] = S[i];
if (i >= k) {
Ans[i] -= S[M[i - k]];
Used[i] = M[i - k] + 1;
}
}
int ans = 0, end, start;
for (i = 0; i < n; ++ i) {
if (Ans[i] > ans) {
end = i + 1;
ans = Ans[i];
start = Used[i];
}
//printf("%d ", A[i]);
}
printf("%d %d %d\n", start + 1, end, ans);
/*for (i = 0; i < n; ++ i)
printf("%d ", S[i]);
printf("\n");*/
return 0;
}