Cod sursa(job #316128)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 18 mai 2009 15:56:01
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>

FILE *f,*s;

int v[500001],n,k,i,j,min1,min2,in;

int minim( int a, int b)
{
	int min=50000;
	for(j=a;j<=b;++j)
	{
		if(v[j]<min)
			min=v[j];
	}	
	
	return min;
}

int main()
{
	f=fopen("secventa.in","r");
	s=fopen("secventa.out","w");
	
	fscanf(f,"%d %d\n",&n,&k);
	
	for(i=1;i<=n;i++)
		fscanf(f,"%d",&v[i]);
	
	min2=minim(1,k);
	min1=min2;
	in=1;
	
	for(i=2;i<=n-k+1;++i)
	{
		if(v[i-1]==min2)
		{
			min2=minim(i,i+k-1);
			
			if(min2>min1)
			{
				min1=min2;
				in=i;
			}	
		}	
		else if(v[i+k-1]<min2)
		{
			min2=v[i+k-1];
			
			if(min2>min1)
			{
				min1=min2;
				in=i;
			}	
		}	
	}	
	
	fprintf(s,"%d %d %d",in,in+k-1,min1);
	
	fclose(s);
	
	return 0;
}