Cod sursa(job #790745)
Utilizator | Gigi Valoare predator | Data | 22 septembrie 2012 11:16:47 |
---|---|---|---|
Problema | Secventa | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include<stdio.h>
#define maxn 500001
int D[maxn],A[maxn],back,front,i,n,k,max,in,out;
long long S;
int main ()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d%d",&n,&k);
front=1;
back=0;
for(i=1;i<=n;++i)
{
scanf("%d",&A[i]);
}
for(i=1;i<=n;++i)
{
while(front<=back&&A[i]<=A[D[back]]) --back;
D[++back]=i;
if(D[front]==i-k) ++front;
if(i>=k)
if(A[D[front]]>max)
{max=A[D[front]];in=i-k+1;out=i;}
}
printf("%d %d %d",in,out,max);
return 0;
}