Cod sursa(job #277069)

Utilizator robbyRobertino robert robby Data 11 martie 2009 14:52:55
Problema Secventa Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <stdio.h>
#define nmax 500005
int a[nmax],c[nmax];
int in,sf,bz;

FILE *f,*g;
int main()
{
  long n,k,i,st;
  f=fopen("secventa.in","rt");
  g=fopen("secventa.out","wt");
  fscanf(f,"%ld %ld\n",&n,&k);
  for (i=0;i<n;i++)
	 fscanf(f,"%d",&a[i]);
  bz=-30009;
  in=1;sf=0;
  for (i=0;i<n;i++)
	{
	  while (a[c[sf]]>a[i]&&sf>=in)sf--;
		c[++sf]=i;
	  while (c[in]<i-k+1) in++;

	  if ( a[c[in]]> bz  && i-k+1 >= 0)
		{
			bz = a[c[in]];
			st = i-k+1;
		}
	}
  fprintf(g, "%ld %ld %d\n", st+1, st+k, bz);
  fcloseall();
  return 0;
}