Pagini recente » Cod sursa (job #1561561) | Cod sursa (job #1434826) | Cod sursa (job #2713690) | Cod sursa (job #1589391) | Cod sursa (job #354817)
Cod sursa(job #354817)
#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;
if(K!=N)
for(int i=0;i+K+1<=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;
}
}
else
{
ifin=1;
jfin=N;
max=v[N]-v[0];
}
printf("%d %d %d",ifin,jfin,max);
return 0;
}