95分代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,d;
int a[100005],b[100005];
signed main(){
cin>>n>>d;
for(int i=1;i<n;i++){
cin>>a[i];
}b[0]=1e9;
for(int i=1;i<=n;i++){
cin>>b[i];
b[i]=min(b[i-1],b[i]);
}int sum=0,ans=0;
for(int i=1;i<=n;i++){
sum+=a[i];
if(b[i]!=b[i+1]){
ans+=((sum-1)/d+1)*b[i];
sum-=((sum-1)/d+1)*d;
}
}cout<<ans;
return 0;
}
评测记录
100分代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,d;
int a[100005],b[100005];
signed main(){
cin>>n>>d;
for(int i=1;i<n;i++){
cin>>a[i];
}b[0]=1e9;
for(int i=1;i<=n;i++){
cin>>b[i];
b[i]=min(b[i-1],b[i]);
}int sum=0,ans=0;
for(int i=1;i<=n;i++){
sum+=a[i];
if(b[i]!=b[i+1]){
ans+=((sum+d-1)/d)*b[i];
sum-=((sum+d-1)/d)*d;
}
}cout<<ans;
return 0;
}
评测记录