Cod sursa(job #74737)

Utilizator dzsDonca Zsolt dzs Data 27 iulie 2007 22:29:18
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>

int a[500001], c[500001];

int main()
{
	FILE* f = fopen("secventa.in","r");
	
	int m, k;
	fscanf(f,"%d %d",&m,&k);
	
	int ind1 = 1;
	int ind2 = 0;
	a[0] = -31000;
	int kmin =- a[0];

	int pmin = k;
	for (int i=1;i<=k;i++) {
		int h;
		fscanf(f,"%d",&h);    
		for (j=0; h < a[ind2]; ind2--) ;
		ind2++;
		a[ind2] = h;
		c[i] = h;
		if (h < kmin) { kmin = h; }
	}
	
	pmin = k;
	for (int i=k+1;i<=m;i++) {
		int h;
		fscanf(f,"%d", &h);
		for (int j=0; h < a[ind2]; ind2--) ;
		ind2++;
		a[ind2] = h;
		c[i] = h;
		if (c[i-k] == a[ind1])
		{ 
			a[ind1] = -31000;
			ind1++;
		}
		if (a[ind1] > kmin)
		{
			kmin = a[ind1];
			pmin = i;
		}
	}
	
	fclose(f);
	f = fopen("secventa.out", "w");
	fprintf(f,"%d %d %d", pmin-k+1, pmin, kmin);
	fclose(f);
	return 0;
}