Pagini recente » Cod sursa (job #3241792) | Cod sursa (job #483882) | Cod sursa (job #2487191) | Cod sursa (job #1999621) | Cod sursa (job #2064175)
#include <bits/stdc++.h>
using namespace std;
long long v[50005],sum[50005],dp[50005],poz[50005];
ifstream in("secv2.in");
ofstream out("secv2.out");
int main()
{
int n,k;
long long Max,p1,p2;
in >> n >> k;
for (int i = 1; i<=n; i++)
{
in >> v[i];
sum[i] = sum[i-1]+v[i];
}
dp[k] = Max = sum[k];
poz[k] = p1 = 1;
p2 = k;
for (int i = k+1; i<=n; i++)
{
if (dp[i-1]+v[i]>=sum[i]-sum[i-k])
{
poz[i] = poz[i-1];
dp[i] = dp[i-1]+v[i];
}
else
{
poz[i] = i-k+1;
dp[i] = sum[i]-sum[i-k];
}
if (dp[i]>Max)
{
Max = dp[i];
p1 = poz[i];
p2 = i;
}
}
out << p1 << " " << p2 << " " << Max;
}