Cod sursa(job #28591)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 8 martie 2007 07:56:03
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
long int n,k,i,a,x[500001],frecv[60001],p,ps,vb,vbs;
int main()
{
	FILE *f=fopen("secventa.in","r");
	fscanf(f,"%ld%ld",&n,&k);
	for(i=1;i<=n;i++)
	{ fscanf(f,"%ld",&a);
	  x[i]=a+3000;
	}
	vb=x[1],frecv[x[1]]++;
	for(i=2;i<=k;i++)
	{if(x[i]<vb)vb=x[i];frecv[x[i]]++;}
	p=1;
	ps=1;vbs=vb;
	for(p=2;p<=n-k+1;p++)
	{ if(x[p+k-1]<vb)vb=x[p+k-1];
	  frecv[x[p-1]]--;frecv[x[p+k-1]]++;
	  if(frecv[vb]==0)
	  while(frecv[vb]==0)vb++;
	  if(vb>vbs){ps=p;vbs=vb;}
	}
	fclose(f);
	f=fopen("secventa.out","w");
	fprintf(f,"%ld %ld %ld\n",ps,ps+k-1,vbs-3000);
	fclose(f);
	return 0;
}