Cod sursa(job #343722)

Utilizator aladinaladin aladinn aladin Data 26 august 2009 23:24:33
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
using namespace std;
#include <cstdio>
#include <deque>

deque <int> D;

int main()
{long long n,k,v[500009],i,max=-30099,st,stp;

 freopen ("secventa.in","r",stdin);
 freopen("secventa.out","w",stdout);
 scanf("%lld %lld %lld",&n,&k,&v[1]);
 D.push_back(1);
 for (i=2;i<=n;++i)
 { scanf("%lld",&v[i]);
    while (!D.empty() && D.front()<=i-k) 
		D.pop_front();
	while (!D.empty() && v[D.back()]>v[i])
	    D.pop_back();
	D.push_back(i);
    if ((1+i-D.front()>=k) && (v[D.front()]>max)) 
      {max=v[D.front()];st=D.front();stp=i;}
	//printf("%lld ",v[D.front()]);  
}
printf("%lld %lld %lld",st,stp,max);
return 0;}