Pagini recente » Cod sursa (job #3171189) | Cod sursa (job #1004645) | Cod sursa (job #941447) | Cod sursa (job #525946) | Cod sursa (job #1460197)
#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;
long long 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];
}
long long 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;
}