Pagini recente » Cod sursa (job #1249251) | Cod sursa (job #1842214) | Cod sursa (job #1208314) | Cod sursa (job #2508147) | Cod sursa (job #3310426)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
const int MAXN = 50001;
int v[MAXN];
long long sum[MAXN], minpar[MAXN];
int pos[MAXN];
int main() {
int n, k;
fin >> n >> k;
for (int i = 1; i <= n; i++)
fin >> v[i];
sum[0] = 0;
for (int i = 1; i <= n; i++)
sum[i] = sum[i - 1] + v[i];
minpar[0] = sum[0];
pos[0] = 0;
for (int i = 1; i <= n; i++) {
if (sum[i] < minpar[i - 1]) {
minpar[i] = sum[i];
pos[i] = i;
} else {
minpar[i] = minpar[i - 1];
pos[i] = pos[i - 1];
}
}
long long best;
int st = 1, dr = k;
bool ok = false;
for (int i = k; i <= n; i++) {
long long cand = sum[i] - minpar[i - k];
if (!ok || cand > best) {
best = cand;
st = pos[i - k] + 1;
dr = i;
ok = true;
}
}
fout << st << " " << dr << " " << best;
return 0;
}