50分求助
查看原帖
50分求助
965137
emu_楼主2024/3/2 14:44
#include<bits/stdc++.h>
using namespace std;
long long n,d,v[1000050],a[1000050],m=0;//m为费用
long long shen=0;//上次买的油跑完要走的路,还能走多少 
int main()
{
	cin>>n>>d;
	
	for(int i=1;i<n;i++) 
			cin>>v[i];
	for(int i=1;i<=n;i++)
		cin>>a[i];
	int j=1;
	while(j<n)
	{
		
			int l=0;//用来对比价格时记录站点 
			int luc=0;//站之间的路程 
			while(j+l<n&&a[j]<=a[j+l])
			{
				
				luc+=v[j+l];
				l++;
				
			}
			luc-=shen;
			if(luc%d==0)
				m=m+luc/d*a[j];
			else
			{
				m=m+(luc/d+1)*a[j];
				shen=(luc/d+1)*d-luc;
			}
		
		j+=l;
	}
	cout<<m;
	return 0;
}

2024/3/2 14:44
加载中...