比赛 20110923 评测结果 WWWWWA
题目名称 跳远 最终得分 16
用户昵称 Truth.Cirno 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-09-23 21:49:22
显示代码纯文本
#include <stdio.h>
#include <cmath>
using namespace std;

int main(void)
{
	freopen("jump.in","r",stdin);
	freopen("jump.out","w",stdout);
	int i,j,k,n,v0,v,maxi,maxj,maxnum=0,dis,maxdis,a[11]={0},x[11]={0};
	double maxdishei,maxhei,hei,tim,h[11]={0};
	bool able;
	scanf("%d %d",&n,&v0);
	for (i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
		x[i]=x[i-1]+a[i-1]/2+a[i]/2;
		h[i]=a[i]/2.0*sqrt(3.0);
	}
	for (i=1;i<=n-1;i++)
		for (j=i+1;j<=n;j++)
		{
			if (maxnum>j-i)
				continue;
			able=true;
			maxdishei=h[i]-h[j];
			maxdis=x[j]-x[i];
			v=sqrt(5*maxdis*maxdis/(maxdis-maxdishei));
			if (v>v0)
				able=false;
			for (k=i+1;able&&k<=j-1;k++)
			{
				hei=h[k];
				dis=x[k];
				tim=dis/v;
				maxhei=v*tim-5*tim*tim+h[i];
				if (maxhei<hei)
					able=false;
			}
			if (able)
			{
				maxi=i;
				maxj=j;
				maxnum=maxj-maxi;
			}
		}
	if (maxnum==0)
		printf("0\n");
	else
		printf("%d %d\n",maxi,maxj);
	fclose(stdin);
	fclose(stdout);
	return(0);
}