Cod sursa(job #820208)

Utilizator razvan9310FMI - Razvan Damachi razvan9310 Data 20 noiembrie 2012 14:04:57
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#include <sstream>
using namespace std;

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

int main()
{
	ifstream in("secventa.in"); ofstream out("secventa.out");
	int n, k, i, x, inc=1, sf=1, start, stop;
	int maxim = -30001;
	
	string text; in>>n>>k;
	in>>x; getline(in, text);
	stringstream ss(text);
	c[1].val = x; c[1].poz = 1;
	
	for (i=2;i<=n;i++)
	{
		ss>>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;
				stop = i;
			}
	}
	
	out<<start<<" "<<stop<<" "<<maxim;
	return 0;
}