Pagini recente » Monitorul de evaluare | Cod sursa (job #710484) | Cod sursa (job #360355) | Borderou de evaluare (job #1139410) | Cod sursa (job #1161135)
#include <iostream>
#include <fstream>
using namespace std;
int a[50005];
int s[50005], i, n, k, l, r, sum, tLeft, tRight, smax;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int main()
{
fin >> n >> k;
for (int i = 1; i <= n; i++)
{
fin >> a[i];
s[i] = s[i-1] + a[i];
}
l = 1;
r = k;
tLeft = 1;
tRight = k;
sum = s[k];
smax = sum;
for(int i = k + 1; i <= n; i++)
{
if (s[i] - s[i-k] > sum + a[i])
{
l = i - k + 1;
r = i;
sum = s[i] - s[i-k];
}
else
{
sum += a[i];
r = i;
}
if (sum > smax)
{
tLeft = l;
tRight = r;
smax = sum;
}
}
fout << tLeft <<" "<< tRight <<" "<<smax;
return 0;
}