Pagini recente » Cod sursa (job #583001) | Cod sursa (job #2643281) | Cod sursa (job #427573) | Cod sursa (job #2589491) | Cod sursa (job #703621)
Cod sursa(job #703621)
#include<cstdio>
#define max(a,b) a>b?a:b
void read(),solve();
int N,K,SM[50010],SMK[50010],A[50010],S[50010],i,st,dr,sol,cnt;
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("secv2.in","r",stdin);
freopen("secv2.out","w",stdout);
scanf("%d%d",&N,&K);
for(i=1;i<=N;i++)
{
scanf("%d",&A[i]);
SM[i]=A[i];S[i]=i;
if(SM[i]<SM[i-1]+A[i])
{
SM[i]=SM[i-1]+A[i];
S[i]=S[i-1];
}
SMK[i]=SMK[i-1]+A[i];
if(i<=K)continue;
SMK[i]-=A[i-K];
}
}
void solve()
{
for(i=K;i<=N;i++)
{
if(sol<SMK[i])
{
sol=SMK[i];
st=i-K+1;
dr=i;
}
if(sol<SMK[i]+SM[i-K])
{
sol=SMK[i]+SM[i-K];
st=S[i-K];
dr=i;
}
}
printf("%d %d %d ",st,dr,sol);
}