0分,必回关
查看原帖
0分,必回关
1299417
chenziyv123楼主2024/10/22 21:48
#include <bits/stdc++.h>
using namespace std;
long long v[100009],a[1000009],d,psum[1000009],lc[1000009];
int main()
{
	int n;
	cin>>n>>d;
	for(int i=1;i<=n-1;i++)
	{
		cin>>v[i];
		psum[i]=psum[i-1]+v[i];
	}
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	int pos=1;
	for(int i=1;i<n;i++)
    {
	       if(a[pos]<a[i])
	       {
	       	    lc[pos]=psum[i-1]-psum[pos-1];
	       	    pos=i;
		   }
    } 
    lc[pos]=psum[n-1]-psum[pos-1];
    long long cosum=0;
    long long dy=0;
    for(int i=1;i<=n-1;i++)
    {
    	cosum+=ceil(1.0*lc[i]/d)*a[i];
    	dy+=ceil(1.0*lc[i]/d)*d-lc[i];
    	if(dy>=d)
    	{
    		dy-=d;
    		cosum-=a[i];
		}
	}
	cout<<cosum;
	return 0;
}
2024/10/22 21:48
加载中...