Pagini recente » Cod sursa (job #1356962) | Cod sursa (job #2628613) | Cod sursa (job #1991211) | Cod sursa (job #990306) | Cod sursa (job #1978455)
#include <cstdio>
#include <cmath>
#include <vector>
#include <algorithm>
#include <cassert>
#include <cstring>
#include <climits>
using namespace std;
typedef long long LL;
#ifdef INFOARENA
#define ProblemName "secv2"
#endif
#define MCONCAT(A, B) A B
#ifdef ProblemName
#define InFile MCONCAT(ProblemName, ".in")
#define OuFile MCONCAT(ProblemName, ".out")
#else
#define InFile "fis.in"
#define OuFile "fis.out"
#endif
#define MAXN 50010
int s[MAXN];
int left, right;
#define UPDATE() if (ans > res) {\
\
res = ans; \
rl = cl + 1; \
rr = cr; \
}\
int main() {
assert(freopen(InFile, "r", stdin));
assert(freopen(OuFile, "w", stdout));
int N, K;
scanf("%d%d", &N, &K);
int rl, rr, res;
int mb = 0, cl = 0;
s[0] = 0;
for (int cr = 1; cr <= N; ++cr) {
scanf("%d", &s[cr]);
s[cr] += s[cr - 1];
if (cr < K) continue;
if (cr == K) {
rl = 1, rr = cr;
res = s[cr];
continue;
}
if (s[cr - K] < mb) {
cl = cr - K;
mb = s[cr - K];
}
int ans = s[cr] - mb;
UPDATE();
}
printf("%d %d %d\n", rl, rr, res);
return 0;
}