Cod sursa(job #5228)

Utilizator piroslPiros Lucian pirosl Data 11 ianuarie 2007 03:45:13
Problema Secventa Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>


int m[500001];
int num[500001];

int main(void)
{
	FILE *fin, *fout;
	int k, n;
	long int i,j;
	int max;
	int start, end;

	fin = fopen("secventa.in", "r");
	fout = fopen("secventa.out", "w");
	fscanf(fin, "%d %d", &n, &k);
	for(i=0; i<n;i++) 
	{
		fscanf(fin, "%d ", &(num[i]));
		m[i] = num[i];
	}
	fclose(fin);
	max = -300001;
	start = 0;
	end = 0;

	if(k == 1)
	{
		for(i=0;i<n;i++)
		{
			if(m[i] > max)
			{
				max = m[i];
				start = i;
				end = i;
			}
		}
	}
	for(i=1;i<n;i++) 
	{
		for(j=0;j<=n-i;j++)
		{
			m[j] = (m[j] < num[j+i])? m[j]:num[j+i];
			if(k<=i+1)
			{
				if(m[j] > max)
				{
					max = m[j];
					start = j;
					end = j+i;
				}
			}
		}
	}

	fprintf(fout, "%d %d %d", start+1, end+1, max);
	fclose(fout);
	return 0;
}