rt,其他地方都过了
代码:
#include<bits/stdc++.h>
using namespace std;
int n,d,a[100005],dis[100005],stk[100005],nxt[100005],top;
long long ans,s[100005],t;
double cur,tmp;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>d;
for(int i=2;i<=n;i++){
cin>>dis[i];
s[i]=s[i-1]+dis[i];
}
for(int i=1;i<n;i++)
cin>>a[i];
stk[++top]=n;
for(int i=n;i>=1;i--){
while(top&&a[stk[top]]>=a[i])
top--;
nxt[i]=stk[top],stk[++top]=i;
}
for(int i=1;i<n;i=nxt[i])
tmp=1.0*(s[nxt[i]]-s[i])/d,t=ceil(max(1.0*(s[nxt[i]]-s[i])/d-cur,.0)),ans+=t*a[i],cur+=t-tmp;
cout<<ans;
return 0;
}