题解
2025-08-17 20:18:23
发布于:浙江
4阅读
0回复
0点赞
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
const int N = 1e5 + 10;
int n,d,v[N],a[N],mn = 1e9;
ll ans,pre,sum;
int main(){
freopen("road.in","r",stdin);
freopen("road.out","w",stdout);
cin>> n >> d;
for(int i = 2;i <= n;i++) cin >> v[i];
for(int i = 1;i <= n;i++) cin >> a[i];
for(int i = 2;i <= n;i++){
sum += v[i];//累加
mn = min(mn,a[i-1]);//求最小油价
ll num = max(0LL,(sum - pre + d - 1)/d);//需要购买的油量
ans+=num*mn;//累加花费
pre+=num*d;//到达下一个位置的距离
}
cout << ans;
fclose(stdin);
fclose(stdout);
return 0;
}
这里空空如也
有帮助,赞一个