Cod sursa(job #426239)

Utilizator marius21Petcu Marius marius21 Data 26 martie 2010 17:20:31
Problema Secventa Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
#include <stdlib.h>

FILE *fin;
FILE *fout;

typedef struct 
{
	int ind,x;
} el;

el dq[500000];

int main (int argc, char * const argv[]) {
	fin=fopen("secventa.in","r");
	fout=fopen("secventa.out","w");
	int n,k;
    fscanf(fin, "%d %d",&n,&k);
	int back=0,front=0;
	int32_t max=0x80000000;
	int p=-1;
	int i;
	for (i=0; i<n; i++)
	{
		el c;
		c.ind=i;
		fscanf(fin,"%d",&c.x);
		while ((front!=back)&&(dq[back].ind<=i-k))
			back++;
		while ((front!=back)&&(dq[front].x>c.x))
			front--;
		dq[++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;
}