momo严选
2025-08-01 09:15:27
发布于:河北
21阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int main()
{
freopen("road.in","r",stdin);
freopen("road.out","w",stdout);
int n,d;
cin>>n>>d;
int v[n+10],a[n+10];
for (int i=1;i<=n-1;i++)
{
cin>>v[i];
}
for (int i=1;i<=n;i++)
{
cin>>a[i];
}
long long ans=0,oil=100000000,dis=0;
long double tmp=0;
for(int i=1;i<=n-1;i++)
{
if (a[i]<oil)
{
dis-=d*tmp;
long long t=ceil(1.0*dis/d);
tmp=t-1.0*dis/d;
ans+=t*oil;
dis=0;
oil=a[i];
}
dis+=v[i];
}
dis-=d*tmp;
long long res=ans+ceil(1.0*dis/d)*oil;
cout<<res;
fclose(stdin);
fclose(stdout);
return 0;
}
这里空空如也
有帮助,赞一个