Pagini recente » Cod sursa (job #297798) | Cod sursa (job #2500019) | Cod sursa (job #3196468) | Cod sursa (job #3244420) | Cod sursa (job #2628525)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int n, k, a, b;
long long v[50005], smax;
bool smax_empty = true;
int main() {
fin >> n >> k;
for (int i = 1; i <= n; ++i) {
fin >> v[i];
v[i] += v[i - 1];
}
for (int i = 1, min_j = 0; i <= n; ++i) {
if ((i - min_j >= k && v[i] - v[min_j] > smax) || (smax_empty == true && i - min_j >= k)) {
smax_empty = false;
smax = v[i] - v[min_j];
a = min_j + 1, b = i;
}
else if (i - min_j < k && i - k >= 0) {
int min_j_aux = 0;
for (int j = 1; j <= i - k; ++j)
if (v[j] < v[min_j_aux])
min_j_aux = j;
if (v[i] - v[min_j_aux] > smax || smax_empty == true) {
smax_empty = false;
smax = v[i] - v[min_j_aux];
a = min_j_aux + 1, b = i;
}
}
if (v[i] < v[min_j])
min_j = i;
}
fout << a << " " << b << " " << smax;
return 0;
}