Pagini recente » Cod sursa (job #2887428) | Cod sursa (job #622760) | Cod sursa (job #1288846) | Cod sursa (job #2840805) | Cod sursa (job #1725718)
#include <cstdio>
using namespace std;
const int N=50001;
struct secv
{
int sum,last;
} d[N];
int s[N];
int main()
{
freopen("secv2.in","r",stdin);
freopen("secv2.out","w",stdout);
int i,n,k,rez,maxx=-(1<<30),in,sf,ind;
scanf("%d%d",&n,&k);
d[0].sum=-1;
for(i=1;i<=n;i++)
{
scanf("%d",&s[i]);
d[i].sum=s[i];
if(d[i-1].sum>=0)
{
d[i].sum+=d[i-1].sum;
d[i].last=d[i-1].last;
}
else d[i].last=i;
s[i]+=s[i-1];
if(i>=k)
{
ind=i-k+1;
rez=s[i]-s[i-k];
if(d[i-k].sum>=0)
{
rez+=d[i-k].sum;
ind=d[i-k].last;
}
if(rez>maxx)
{
maxx=rez;
in=ind;
sf=i;
}
}
}
printf("%d %d %d\n",in,sf,maxx);
return 0;
}