Pagini recente » Cod sursa (job #1404188) | Cod sursa (job #1011302) | Cod sursa (job #2082596) | Cod sursa (job #1116322) | Cod sursa (job #97561)
Cod sursa(job #97561)
#include <cstdio>
const int N = 50000;
int n,k;
int a[N], b[N], c[N], s[N];
int main() {
freopen("secv2.in","rt",stdin);
freopen("secv2.out","wt",stdout);
scanf("%d %d %d ",&n,&k,&a[0]);
b[0] = a[0];
c[0] = (a[0] > 0) ? a[0] : 0;
s[0] = (a[0] > 0) ? 0 : -1;
for (int i = 1; i<n; ++i) {
scanf("%d",&a[i]);
b[i] = b[i-1]+a[i];
if (c[i-1] + a[i] >= 0) {
c[i] = c[i-1]+a[i];
s[i] = (s[i-1] == -1) ? i : s[i-1];
} else {
c[i] = 0;
s[i] = -1;
}
}
int sm = 0, fm = k-1, max = b[k-1];
for (int i = k; i<n; ++i) {
if (max < b[i]-b[i-k]+c[i-k]) {
max = b[i]-b[i-k]+c[i-k];
fm = i;
sm = s[i-k];
if (sm == -1) sm = i-k+1;
}
}
printf("%d %d %d\n",sm+1,fm+1,max);
return 0;
}