Cod sursa(job #438533)

Utilizator ati90atiNagy Attila ati90ati Data 10 aprilie 2010 20:57:57
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>
#include <stdlib.h>

int d[500000],a[500000];

int main()
{
	FILE* f1;
	FILE* f2;
	f1=(fopen("secventa.in","r"));
	int n,k;
	fscanf(f1,"%d %d\n",&n,&k);
	fscanf(f1,"%d",&a[0]);

	int eleje=0,vege=0,min_eleje=0,min_vege=0;
	d[1]=0;

	int min=-30001;

	for (int i=1;i<n;i++)
	{
		fscanf(f1,"%d",&a[i]);
		{
			if (d[eleje]<=i-k)
				eleje++;
			while ((eleje<=vege) && (a[i]<d[vege]))
				vege--;
			vege++;
			d[vege]=i;

			if (i>=k)
				if (min<a[d[eleje]])
				{
					min=a[d[eleje]];
					min_eleje=i-k+1;
					min_vege=i;
				}
		}
	}


	fclose(f1);
	f2=(fopen("secventa.out","w"));

	fprintf(f2,"%d %d %d\n",min_eleje+1,min_vege+1,min);

	fclose(f2);
	return 0;
}