Pagini recente » Cod sursa (job #1222330) | Cod sursa (job #723931) | Cod sursa (job #500038) | Cod sursa (job #1684003) | Cod sursa (job #3138549)
#include <stdio.h>
#define MAXN 50000
#define MINS -1250000000
int sume[MAXN + 1];
int maxs[MAXN];
unsigned short dr[MAXN];
int main() {
FILE *fin, *fout;
int n, k, i, rez_st, rez_dr, max;
fin = fopen("secv2.in", "r");
fscanf(fin, "%d%d", &n, &k);
for(i = 0; i < n; i++) {
fscanf(fin, "%d", &sume[i + 1]);
sume[i + 1] += sume[i];
}
fclose(fin);
maxs[n - k] = sume[n];
dr[n - k] = n - 1;
for(i = n - k - 1; i >= 0; i--)
if(sume[i + k] > maxs[i + 1]) {
maxs[i] = sume[i + k];
dr[i] = i + k - 1;
} else {
maxs[i] = maxs[i + 1];
dr[i] = dr[i + 1];
}
max = MINS - 1;
for(i = 0; i <= n - k; i++)
if(maxs[i] - sume[i] > max) {
max = maxs[i] - sume[i];
rez_st = i;
rez_dr = dr[i];
}
fout = fopen("secv2.out", "w");
fprintf(fout, "%d %d %d\n", rez_st + 1, rez_dr + 1, max);
fclose(fout);
return 0;
}