1004 vacation
http://acm.hdu.edu.cn/showproblem.php?pid=6581
前面的每个车都开到一个位置,使得这个位置恰好不妨碍最后一辆车到达到;
然后算每个车到达自己的那个位置所需时间的最大值。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
struct node{
int l,s,v;
}ak[100005];
int main()
{
int n,m;
while(~scanf("%d",&n))
{
for(int i=1;i<=n+1;i++)
{
scanf("%d",&ak[i].l);
}
for(int i=1;i<=n+1;i++)
{
scanf("%d",&ak[i].s);
}
for(int i=1;i<=n+1;i++)
{
scanf("%d",&ak[i].v);
}
ll len=0;
double ans=0,time;
for(int i=n+1;i>=2;i--)
{
len+=ak[i].l;
}
for(int i=n+1;i>=1;i--)
{
double dis=len+ak[i].s;
time=dis/ak[i].v;
if(time>ans)
ans=time;
len-=ak[i].l;
}
printf("%lf\n",ans);
}
return 0;
}