Pagini recente » Cod sursa (job #2387860) | Cod sursa (job #1250456) | Cod sursa (job #1294594) | Cod sursa (job #1145684) | Cod sursa (job #354815)
Cod sursa(job #354815)
#include<stdio.h>
int N,K,v[100000],x,st,dr,max=-10000001,ifin,jfin,dq[100000];
int main()
{
freopen("secv2.in","r",stdin);
freopen("secv2.out","w",stdout);
scanf("%d%d",&N,&K);
for(int i=1;i<=N;++i)
{
scanf("%d",&x);
v[i]=v[i-1]+x;
}
st=1;
dr=0;
dq[++dr]=0;
for(int i=0;i<=N;++i)
{
while(st<=dr&&v[dq[dr]]>v[i])
--dr;
dq[++dr]=i;
if(v[i+K+1]-v[dq[st]]>max&&i+K+1<=N)
{
max=v[i+K+1]-v[dq[st]];
ifin=dq[st]+1;
jfin=i+K+1;
}
}
printf("%d %d %d",ifin,jfin,max);
return 0;
}