Pagini recente » Cod sursa (job #763207) | Cod sursa (job #2390812) | Cod sursa (job #4352) | Cod sursa (job #2900917) | Cod sursa (job #2861732)
#include <bits/stdc++.h>
#define NMAX 50005
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
/// dbg
/*
#define fin cin
#define fout cout
*/
// teoretic merge si pe short vectorul, Elementele din vector sunt numere intregi din intervalul [-25.000, 25.000]
int N, K, sp[NMAX], x;
int main()
{
fin >> N >> K;
for (int i = 0; i < N; ++i)
{
fin >> x;
sp[i] = sp[i - 1] + x;
}
int Min = 0, cnt = INT_MIN, minIndex = 0, startIndex = 0, stopIndex = 0;
for (int i = 0; i < N; ++i)
{
if (sp[i] - Min > cnt && i - minIndex >= K)
{
cnt = sp[i] - Min;
startIndex = minIndex + 1;
stopIndex = i;
}
if (i - K + 1 > 0 && sp[i] - sp[i - K] > cnt)
{
cnt = sp[i] - sp[i - K];
startIndex = i - K + 1;
stopIndex = i;
}
if (sp[i] < Min)
{
Min = sp[i];
minIndex = i;
}
}
fout << startIndex << ' ' << stopIndex << ' '<<cnt;
return 0;
}