Cod sursa(job #819892)

Utilizator razvan9310FMI - Razvan Damachi razvan9310 Data 19 noiembrie 2012 20:11:52
Problema Secventa Scor 70
Compilator c Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#include <stdlib.h>

typedef struct Nr
{
	int val, poz;
}nr;
nr c[5000001];



int main()
{
	FILE *in = fopen("secventa.in", "r"), *out = fopen("secventa.out", "w");
	int n, k, i, x, inc = 1, sf = 1, start, stop; 
	long long maxim = -30001;
	
	fscanf(in, "%d%d", &n, &k);
	fscanf(in, "%d", &x);
	c[1].val = x; c[1].poz = 1;
	for (i=2;i<=n;i++)
	{
		fscanf(in, "%d", &x);
		while (x <= c[sf].val && sf >= inc) sf--;
		c[++sf].val = x; c[sf].poz = i;
		if (c[inc].poz + k <= i) inc++;
		if (i >= k)
			if (c[inc].val > maxim) 
			{
				maxim = c[inc].val;
				start = i-k+1;//start = c[inc].poz;
				stop = i;//stop = c[sf].poz;
			}
	}
	
	fprintf(out, "%d %d %lld", start, stop, maxim);
	return 0;
}