Cod sursa(job #350378)

Utilizator MKLOLDragos Ristache MKLOL Data 23 septembrie 2009 18:51:41
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<stdio.h>
#define Nmax 500010

int v[Nmax],dq[Nmax],K,N,st,dr,max,ifin,jfin;

int main()
{

freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);

scanf("%d %d",&N,&K);

for(int i=1;i<=N;++i)
scanf("%d",&v[i]);
st=1;
dr=0;

for(int i=1;i<=N;++i)
{
while(st<=dr&&v[dq[dr]]>v[i]) --dr;
dq[++dr]=i;

if(dq[st]==i-K)
++st;


if(i>=K)
{
if(v[dq[st]]>max)
{
max=v[dq[st]];
ifin = dq[st];
jfin = i;
}
}
}

printf("%d %d %d",ifin,jfin,max);

return 0;
}