贪心 0分求调
查看原帖
贪心 0分求调
976702
Xhan_楼主2023/11/3 20:35
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,d,s[100010],pc[100010],mny=0,x=0;
	cin>>n>>d;
	s[0]=0;
	for(int i=1;i<=n-1;i++)
	{
		int a;
		cin>>a;
		s[i]+=s[i-1]+a;
	}
	for(int i=1;i<=n;i++)cin>>pc[i];
	int now=1;
//	while(now<n)
//	{
		for(int i=1;i<n;i++)
		{
			int b=0;
			if(pc[i]<pc[now] && i>now)b+=((s[i-1]-x)/d)*pc[now];
			if((s[i-1]-x)%d)b+=pc[now];
			mny+=b,now=i;x+=(b/pc[now])*d;
		}
		mny+=((s[n-1]-x)/d)*pc[now];
		if((s[n-1]-x)%d)mny+=pc[now];
		now=n;
//	}
	cout<<mny;
	return 0;
}
2023/11/3 20:35
加载中...