Pagini recente » Cod sursa (job #1091015) | Cod sursa (job #2219921) | Cod sursa (job #2139250) | Cod sursa (job #1436223) | Cod sursa (job #1479633)
#include <bits/stdc++.h>
#define nmax 50005
using namespace std;
ofstream fout("secv2.out");
int n, k, v[nmax], dp[nmax];
void Citire()
{
int i;
ifstream fin("secv2.in");
fin >> n >> k;
for (i = 1; i <= n; i++)
fin >> v[i];
fin.close();
}
void SecvMax()
{
int i, suma, smax, st, dr, poz;
suma = 0;
for (i = 1; i <= k; i++)
suma += v[i];
dp[k] = suma;
smax = suma;
st = 1;
dr = k;
for (i = k + 1; i <= n; i++)
{
if (dp[i - 1] > suma)
dp[i] = dp[i - 1] + v[i];
else
{
dp[i] = suma + v[i];
poz = i - k;
}
if (dp[i] > smax)
{
st = poz;
dr = i;
smax = dp[i];
}
suma -= v[i - k];
suma += v[i];
}
fout << st << " " << dr << " " << smax << '\n';
fout.close();
}
int main()
{
Citire();
SecvMax();
return 0;
}