Cod sursa(job #591963)

Utilizator rudarelLup Ionut rudarel Data 26 mai 2011 09:05:21
Problema Secventa Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <stdio.h>
#define DIM 500001
#define MAX 30001

FILE *fin, *fout;

long int a[DIM];
long int n, k;
long int baza, poz, start, rez;

int main()
{

	fin = fopen("secventa.in", "r");
	fout = fopen("secventa.out", "w");

	fscanf( fin, "%ld %ld", &n, &k );

	baza = MAX;
	int i;

	for ( i = 1; i <= k; i++ )
	{
		fscanf( fin, "%ld", &a[i] );
		if ( a[i] < baza )
		{
			baza = a[i];
			poz = i;
		}
	}

	rez = baza;
	start = k;

	int j, min, pz;

	for ( i = k + 1; i <= n; i++ )
	{
		fscanf( fin, "%ld", &a[i] );
		if ( poz == i-k )
		{
			min = MAX;
			for ( j = i - k + 1; j <= i; j++ )
				if ( a[j] <= min )
				{
					min = a[j];
					pz = j;
				}
				if ( min > baza )
				{
					baza = min;
					poz = pz;
				}
		}
		else if ( a[i] < baza )
		{
			baza = a[i];
			poz = i;
		}

		if ( baza > rez )
		{
			rez = baza;
			start = i;
		}
	}

	fprintf( fout, "%ld %ld %ld", start - k + 1, start, rez);

	fclose(fin);
	fclose(fout);

	return 0;
}