Pagini recente » Monitorul de evaluare | Cod sursa (job #1900293) | Profil CorinaT | Cod sursa (job #2005468) | Cod sursa (job #1888081)
#include <fstream>
#define DM 6000000
using namespace std;
ifstream fi ("secv2.in");
ofstream fo ("secv2.out");
int n, a, k, st, v[DM], c;
long long s, sp;
pair <int, pair <int, int> > mx;
int main()
{
fi >> n >> k;
for (int i = 1; i <= n; ++i)
fi >> v[i];
for (int i = 1; i <= k; ++i)
s+=v[i];
st = 1;
mx.second.second = st;
mx.second.first = k;
mx.first = s;
s = 0;
for (int i = 1; i <= n; ++i)
{
s+=v[i];
c = i - st - k + 1;
if (c)
sp+=v[st+c-1];
if (sp < 0)
{
s-=sp;
st+=c;
sp = 0;
}
if (s > mx.first && i >= k)
{
mx.second.second = st;
mx.second.first = i;
mx.first = s;
}
c = 0;
}
fo << mx.second.second << ' ' << mx.second.first << ' ' << mx.first;
return 0;
}