Cod sursa(job #530104)

Utilizator tudgal1001Profir Tudor tudgal1001 Data 6 februarie 2011 20:38:16
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream.h>
int v[1000], maxi, maxj, max, i, n, k, j, auxi;

ifstream in("secventa.in");
ofstream out("secventa.out");

int main()
{
	in >> n >> k;
	for (i=1;i<=n;i++)
	{
		in >> v[i];
	}
	for (i=1;i<=n-k+1;i++)
	{
		j = i;
		while (v[j]>=v[i] && j<=n)
			j++;
		if (j-i>=k)
		{
			if (max < v[i]) // am gasit un maxim deci retin secventa
			{
			maxi = i;
			maxj = j-1; // while-ul face ca j sa fie mai mare cu 1 decat trebuie
			max = v[i];
			}
		}
		else
		{
			auxi = i; // nu am k elemente... ma plimb la stanga atat timp cat pot
			while (v[auxi]>=v[i] && auxi>0) 
				auxi--;
			if (j-auxi>=k) // am cel putin k elemente
			{
				if (max < v[i]) // am gasit maxim
				{
					maxi = auxi;
					maxj = j-1;
					max = v[i];
				}
			}
		}
	}
	out<<maxi<<" "<<maxj<<" "<<max;
	return 0;
}