求调
查看原帖
求调
1056745
wen114248050楼主2023/11/2 18:13
#include <bits/stdc++.h>
using namespace std;
long long n,d,a[100001],b[100001],sum[100001],ans,now,v,j=1;
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];
	for(int i=1;i<n;i++)sum[i]=a[i-1]+sum[i-1];
    for(int i=1;i<n;++i){
        while(j<n&&a[i]<=a[j])
		{
			j++;
        	v=sum[j]-sum[i];
        	if((v+d-1)/d!=(v-now+d-1))
			{
            	v-=now;
            	now=0;
        	}
        	ans+=a[i]*((v+d-1)/d);
        	now+=(v+d-1)/d*d-v;
        	i=j-1;
		} 
    }
    cout<<ans;
	return 0;
}
2023/11/2 18:13
加载中...