Cod sursa(job #624400)

Utilizator roots4Irimia Alexandru Gabriel roots4 Data 22 octombrie 2011 12:21:55
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.49 kb
#include <stdio.h>
#define val 500003
int n , i , p , u , k , i2 ,max;

int D[val];
int V[val];
int main(){
	freopen("secventa.in","r",stdin);
	freopen("secventa.out","w",stdout);
	scanf("%d%d%d",&n,&k,&V[1]);
	
	p=1;u=1;D[1]=1;
	for(i=2;i<=n;i++){
		scanf("%d",&V[i]);
		while(p<=u&&V[D[u]]>=V[i])
			u--;
		D[++u]=i;
		if((i-D[p])==k)
			p++;
		if(i>=k){
			if(V[D[p]]>max){
				max=V[D[p]];
				
				i2=D[u];
			}
		}			
	}
	printf("%d %d %d",i2-k+1,i2,max);
	return 0;
}