莫名其妙的WA,大样例能过。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
long long n,d,a[N],b[N],now,last,ans;
int main(){
cin>>n>>d;
for(int i=1;i<n;i++) cin>>a[i];
for(int i=1;i<=n;i++) cin>>b[i];
b[0]=1e9;
for(int i=1;i<n;i++){
int nowChoose;
if(b[i]>b[last]) nowChoose=last;
else{
last=i;
nowChoose=i;
}
long long Ned=a[i]-now;
now=0;
ans+=(Ned/d)*b[nowChoose];
if(Ned%d>0){
now+=d-(Ned-Ned/d*d);
ans+=b[nowChoose];
}
}
cout<<ans<<endl;
return 0;
}