Cod sursa(job #54041)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 23 aprilie 2007 23:22:46
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++)
	{vb=(x[i]<vb)?x[i]:vb;frecv[x[i]]++;}
	p=1;
	ps=1;vbs=vb;
	for(p=2;p<=n-k+1;p++)
	{ vb=(x[p+k-1]<vb)?x[p+k-1]:vb;
	  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;
}