那位大佬帮忙看看:
#include <bits/stdc++.h>
using namespace std;
int v[10005],a[10005];
int main()
{
int n,d,ans=0;
cin >> n >> d;
for (int i=1;i<=n-1;i++)
{
cin >> v[i]; //距离
}
for (int i=1;i<=n;i++)
{
cin >> a[i]; //价格
}
int minn=a[1],s=1,left=0; //minn表示当前价格的最小值,s表示每次购买的站点,left表示每次购买后多出来的行程。
for (int i=1;i<=n;i++)
{
if (a[i]<minn) //判断是否存在比当前价格更小的值。
{
int sum=0; //所需行走的路程。
for (int j=s;j<=i-1;j++)
{
sum+=v[j]; //累计所需行走的路程。
}
ans+=ceil((sum-left)/d)*minn; //累计所花费的金额。
left=ceil((sum-left)/d)*d-sum+left; //计算次购买后多出来的行程。
minn=a[i]; //更新最小值
s=i; //更新站点
}
}
cout << ans << endl;
return 0;
}
为什么测试全错啊?