Cod sursa(job #426229)

Utilizator marius21Petcu Marius marius21 Data 26 martie 2010 17:10:49
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <stdio.h>
#include <deque>
#include <stdlib.h>

using namespace std;

FILE *fin=fopen("secventa.in","r");
FILE *fout=fopen("secventa.out","w");

struct el
{
	int ind,x;
};

deque<el> dq;

int main (int argc, char * const argv[]) {
	int n,k;
    fscanf(fin, "%d %d",&n,&k);
	dq.clear();
	int32_t max=0x80000000;
	int p=-1;
	for (int i=0; i<n; i++)
	{
		el c;
		c.ind=i;
		fscanf(fin,"%d",&c.x);
		while (!dq.empty()&&(dq.back().ind<=i-k))
			dq.pop_back();
		while (!dq.empty()&&(dq.front().x>c.x))
			dq.pop_front();
		dq.push_front(c);
		if ((i>=k-1)&&(dq.back().x>max))
		{
			max=dq.back().x;
			p=i-k+1;
		}
	}
	fprintf(fout, "%d %d %d\n",p+1,p+k,max);
	fclose(fin);
	fclose(fout);
    return 0;
}