Pagini recente » Cod sursa (job #1977304) | Cod sursa (job #2654167) | Cod sursa (job #1977420) | Cod sursa (job #168211) | Cod sursa (job #2457213)
#include <fstream>
#include <iostream>
using namespace std;
int v[50004];
int t[50004];
int n, k;
int main()
{
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int i, x;
int s, smax, p1, p2, poz;
fin >> n >> k;
for (i = 1; i <= n; i++)
{
fin >> v[i];
t[i] = t[i-1] + v[i];
}
s = smax = t[k];
p1 = 1;
p2 = k;
poz = 1;
for (i = k+1; i <= n; i++)
{
t[i] = t[i-1] + v[i];
if (s < 0)
{
poz = i-k+1;
s = t[i-1] - t[i-k];
//cout << s << " *\n";
}
else if (s >= 0)
{
//
}
s += v[i];
//cout << s << " +\n";
if (s > smax)
{
smax = s;
p1 = poz;
p2 = i;
}
}
while (v[p1] <= 0 && p1 <= p2-k)
{
p1++;
smax = t[p2] - t[p1-1];
}
fout << p1 << " " << p2 << " " << smax << "\n";
return 0;
}