求助!30分!
查看原帖
求助!30分!
1294169
Ljxym927213楼主2024/10/3 11:18
#include<bits/stdc++.h>
using namespace std;
#define int long long
int v[100005];
int a[100005];
int an,y;
int n,d,s;
signed main()
{
cin>>n>>d;
for(int i=1;i<=n-1;i++)
{
	cin>>v[i];
}
for(int i=1;i<=n;i++)
{
	cin>>a[i];
}
an=a[1];
if(v[1]%d==0)
{
	s+=an*v[1]/d;
}
else
{
	s+=an*(v[1]/d+1);
	y=(v[1]/d+1)*d-v[1];
}
for(int i=2;i<=n-1;i++)
{
	an=min(an,a[i]);
	if(y-v[i]>=0)
	{
		y-=v[i];
		continue;
	}
	else if((v[i]-y)%d==0)
	{
		s+=an*(v[i]-y)/d;
		y=0;
	}
	else
	{
		s+=an*((v[i]-y)/d+1);
		y=((v[i]-y)/d+1)*d-v[i];
	}
	
}
cout<<s;
 return 0;
}
2024/10/3 11:18
加载中...