Pagini recente » Cod sursa (job #1702751) | Cod sursa (job #142095) | Cod sursa (job #2118445) | Cod sursa (job #1446286) | Cod sursa (job #1460183)
#include <cstdio>
#include <iostream>
#include <vector>
#include <set>
#include <cmath>
#include <climits>
#include <list>
#include <iomanip>
#include <cstdlib>
#include <map>
#define nmax 50005
using namespace std;
int main() {
freopen("secv2.in", "r", stdin);
freopen("secv2.out", "w", stdout);
ios_base::sync_with_stdio(false);
cin.tie(0);
int n, k;
cin >> n >> k;
int v[nmax], poz[nmax], sum[nmax];
sum[0] = 0;
for (int i = 1; i <= n; i++) {
cin >> v[i];
sum[i] = v[i] + ((sum[i - 1] > 0) ? sum[i - 1] : 0);
}
poz[0] = 0;
for (int i = 1; i <= k; i++) {
poz[i] = poz[i - 1] + v[i];
}
int inc = 1, fin = k, sm = poz[k];
for (int i = k + 1; i <= n; i++) {
poz[i] = poz[i - 1] + v[i];
if (sum[i - k] <= 0) {
poz[i] -= sum[i - k];
if (poz[i] > sm) {
sm = poz[i];
fin = i;
inc = i - k + 1;
}
}
if (poz[i] > sm) {
sm = poz[i];
fin = i;
}
}
cout << inc << " " << fin << " " << sm;
return 0;
}