Cod sursa(job #770207)

Utilizator Mihai22eMihai Ionut Enache Mihai22e Data 22 iulie 2012 13:56:21
Problema Secventa Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<stdio.h>

#define MAXN 500002

int A[ MAXN ][2], n, k, x, y, res = -MAXN;

void solve()
{
	FILE *f = fopen("secventa.in", "r");
	
	int i, st = 1, end = 0, val;
	
	fscanf(f, "%d %d", &n, &k);
	for(i = 1; i <= n; i++)
	{
		fscanf(f, "%d", &val);
		
		while(val <= A[end][1] && st <= end)
			end--;
		end++, A[end][0] = i, A[end][1] = val;
		
		if(i - k == A[st][0])
			st++;
		
		if(i >= k)
			if(A[st][1] > res)
				res = A[st][1], x = i - k + 1, y = i;
	}
	
	fclose(f);
}

void write()
{
	FILE *g = fopen("secventa.out", "w");
	
	fprintf(g, "%d %d %d\n", x, y, res);
	
	fclose(g);
}

int main()
{
	solve();
	write();
	return 0;
}