Cod sursa(job #266909)

Utilizator ooctavTuchila Octavian ooctav Data 26 februarie 2009 12:02:46
Problema Secventa Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
// secventa.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
int e[500004];

int deque[500004];
int front=0,back=1;
int main()
{
	int n,k,i,j,st=1,dr=0,poz1,poz2,baz=-30000;
	bool b=true;
	FILE *f1,*f2;
	f1=fopen("secventa.in","r");
	f2=fopen("secventa.out","w");
	fscanf(f1,"%d %d\n",&n,&k);
	for(i=1;i<=n;i++)
		fscanf(f1,"%d ",&e[i]);
	for(i=1;i<=n;i++)
	{
		while(st<=dr && e[i]<=e[deque[dr]])
			dr--;
		deque[++dr]=i;
		if(deque[st]==i-k)
			st++;
		if(i>=k)
			if(e[deque[st]]>baz)
			{
				baz=e[deque[st]];
				poz1=i-k+1;
				poz2=i;
			}
	}
	fprintf(f2,"%d %d %d\n",poz1,poz2,baz);
	fclose(f1);
	fclose(f2);
	return 0;
}