Cod sursa(job #215371)

Utilizator AthanaricCirith Gorgor Athanaric Data 18 octombrie 2008 15:38:22
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <stdio.h>
#include <string.h>
char cz[3000010];
int n,p,v[500005];

void citirith()
{
	int i=0,q=0,x,semn;
	scanf("%d%d\n",&n,&p);
	gets(cz); x=0; semn=1;
	for (i=0; cz[i]!='\n' && cz[i]!='\0'; ++i)
	{
		if (cz[i]==' ')
		{
			v[++q]=x*semn;
			x=0;
			semn=1;
		}
		if (cz[i]=='-')
			semn=-1;
		if (cz[i]>='0'&&cz[i]<='9')
			x=x*10+cz[i]-'0';
	}
	v[++q]=x*semn;
	for (int i=1; i<=n; i++)
		printf("%d ",v[i]);
	printf("\n");
}
void rezolvarith()
{
	int sol=31000,min,pozmax,poz=0;
	pozmax=1;
	for (int i=0; i<p; i++)
		if (v[i]<sol)
		{
			sol=v[i];
			pozmax=i;
		}
	
	for (int i=pozmax; i<=n-p+1; ++i)
	{
		min=30005;
		for (int j=i; j<i+p; j++)
			if (v[j]<min)
			{
				min=v[j];
				pozmax=j;
			}
		if (min>sol)
		{
			sol=min;
			poz=i;
		}
		i=pozmax;
	}
	printf("%d %d %d\n",poz,poz+p-1,sol);
}
int main()
{
	freopen("secventa.in","r",stdin);
	freopen("secventa.out","w",stdout);
	citirith();
	rezolvarith();
	return 0;
}