样例和测试点1输出都是正确的,但就是零分
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,d,a[100010],b[100010],ans,ro,m,yo,qm,kj;
cin>>n>>d;
for(int i=1;i<n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
}
for(int i=1;i<n;i++){
ro=0;
m=b[i];
while(i!=n&&m<b[i+1]){
ro=ro+a[i];
i++;
}
if(m>=b[i+1]){
ro+=a[i];
}
ro-=qm;
qm=0;
if(ro%d!=0){
ans+=m*(ro/d+1);
qm=d*(ro/d+1)-ro;
}
else{
ans+=m*ro/d;
}
}
cout<<ans;
return 0;
}