Cod sursa(job #551206)

Utilizator Eugen01Vasilescu Eugen Eugen01 Data 10 martie 2011 15:13:32
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
#include<fstream>
#include<deque>
using namespace std;

int st,k,i,j,n,m=-30001,a[500009];
deque<int> b;

int main()
{
	//freopen("secventa.in","r",stdin);
	//freopen("secventa.out","w",stdout);
    ifstream f("secventa.in");
    ofstream g("secventa.out");

	//scanf("%d%d",&n,&k);
	f>>n>>k;
	
	for (i=1;i<=n;i++)
	{
		f>>a[i];
		//scanf("%d",a[i]);
		while (!b.empty() && a[i]<=a[b.back()]) b.pop_back();
		b.push_back(i);
		if (i-b.front()==k) b.pop_front();
		if (i>=k&&a[b.front()]>m) 
		{
			m=a[b.front()];
			st=i;
		}
	}
	//printf("%d %d %d\n",st-k+1,st,m);
	g<<st-k+1<<" "<<st<<" "<<m;
	return 0;
}