Cod sursa(job #253321)
| Utilizator | Data | 5 februarie 2009 17:50:38 | |
|---|---|---|---|
| Problema | Secventa | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.43 kb |
#include<stdio.h>
int n,k,i,a[500005],p[500005],st,dr,s,m;
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d%d",&n,&k);
st=1;dr=0;
s=-1000000000;
for(i=1;i<=n;++i)
{scanf("%d",&a[i]);
while(a[p[dr]]>=a[i]&&dr>=st)--dr;
p[++dr]=i;
if(i>=k)
{if(p[st]<=i-k)++st;
if(a[p[st]]>s){s=a[p[st]];m=i;}}}
printf("%d %d %d\n",m-k+1,m,s);
return 0;
}
