记录编号 |
27589 |
评测结果 |
AAAAAA |
题目名称 |
跳远 |
最终得分 |
100 |
用户昵称 |
QhelDIV |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.002 s |
提交时间 |
2011-09-26 22:01:49 |
内存使用 |
0.27 MiB |
显示代码纯文本
#include<fstream>
#include<cmath>
using namespace std;
ifstream fin("jump.in");
ofstream fout("jump.out");
int n; bool bo;
double v0,v,sidelong[1000],ESH[200],start[200],x,y;
void reads()
{
int i,j;
fin>>n>>v0;
for(i=1;i<=n;i++)
{
fin>>sidelong[i];
ESH[i]=sidelong[i]/2*sqrt(3.0);
start[i]=start[i-1]+sidelong[i-1]/2+sidelong[i]/2;
}
}
int main()
{
int i,j,k;
bool bo;
reads();
ESH[n+1]=21000000;
for(i=1;i<=n-1;i++)
{
for(j=i+1;j<=n;j++)
{
bo=true;
v=-5*(start[j]-start[i])*(start[j]-start[i]);
v=v / (ESH[j]-ESH[i]-start[j]+start[i]);
v=sqrt(v);
if(v>v0) {break;}
if(start[j] - start[i]<ESH[j] - ESH[i]) {break;}
for(k=j-1;k>=i+1;k--)
{
y=ESH[i]+start[k]-start[i]-5*pow(((start[k]-start[i])/v),2);
if(y<=ESH[k]) {bo=false;}
}
if(bo==false) break;
}
if(i==j-1)
fout<<0<<' ';
else
fout<<j-1<<' ';
}
fin.close();
fout.close();
return 0;
}