Cod sursa(job #34572)

Utilizator robbyRobertino robert robby Data 20 martie 2007 21:31:57
Problema Secventa Scor 80
Compilator c Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#define nmax 500001
int a[nmax];
FILE *f,*g;
int main()
{
  long n,k,i,j,min,l,max,imax,x,nr;
  f=fopen("secventa.in","rt");
  g=fopen("secventa.out","wt");
  fscanf(f,"%ld %ld\n",&n,&k);
  for (i=1;i<=n;i++)
	fscanf(f,"%d",&a[i]);
  min=30001;
  for (i=1;i<=k;i++)
	if (a[i]<min)
	  min=a[i];

  max=min;
  imax=1;
  nr=0;
  l=n-k+1;
  for (i=2;i<=l&&nr<100000;i++)
	{
	  if (a[i-1]==min)
		{
		  x=i+k-1;
		  min=a[i];
		  for (j=i+1;j<=x;j++)
			if (a[j]<min)
			  min=a[j];
		  nr=nr+x-i;
		}
	   else
		 if (a[i+k-1]<min)
		   min=a[i+k-1];
	  if (min>max)
		{
		  max=min;
		  imax=i;
		}
	  nr++;
	}

  fprintf(g,"%ld %ld %ld\n",imax,imax+k-1,max);
  fcloseall();
  return 0;
}