Cod sursa(job #834000)

Utilizator avramavram andrei marius avram Data 13 decembrie 2012 16:41:16
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<stdio.h>
int i,j,k,n,v[500010],d[500010],p,u,maxi,ii,jj;
int main()
{
	freopen("secventa.in","r",stdin);
	freopen("secventa.out","w",stdout);
	scanf("%d%d",&n,&k);
	for(i=1;i<=n;i++)
		scanf("%d",&v[i]);
	u=p=1;
	d[1]=1;
	maxi=-3000001;
	for(i=2;i<=n;i++)
	{
		while(v[i]<v[d[u]]&&p<=u)
			u--;
		d[++u]=i;
		if(i-d[p]==k)
			p++;
		if(i>=k)
		{
			
			if(v[d[p]]>maxi)
			{
				maxi=v[d[p]];
				ii=i-k+1;
				jj=i;
			}
			
		}
	}
	printf("%d %d %d",ii,jj,maxi);
}