Pagini recente » Borderou de evaluare (job #1159360) | Borderou de evaluare (job #2577369) | Borderou de evaluare (job #1794325) | Borderou de evaluare (job #2103108) | Cod sursa (job #1480674)
#include <stdio.h>
const int maxN = 50000;
int v[maxN];
int main() {
freopen("secv2.in", "r", stdin);
freopen("secv2.out", "w", stdout);
int N, K, S, L, R, St, Dr, Smax;
scanf("%d%d", &N, &K);
for(register int i = 0; i < N; ++ i)
scanf("%d", &v[i]);
S = Smax = v[0];
St = 0;
for(register int i = 1; i < N; ++ i) {
if(S + v[i] > v[i])
S += v[i], Dr = i;
else
S = v[i], St = Dr = i;
if(S > Smax and (Dr - St + 1) >= K)
Smax = S, L = St, R = Dr;
}
if(S > Smax and (Dr - St + 1) >= K)
Smax = S, L = St, R = Dr;
printf("%d %d %d\n", ++ L, ++ R, Smax);
return 0;
}