比赛 |
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);
}