求助(Wa一半)
查看原帖
求助(Wa一半)
979972
qinshiv楼主2024/1/27 16:31
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,d;
	cin>>n>>d;
	int s[n],p[n+1];
	for(int i=1;i<n;i++)
	    cin>>s[i];
	for(int i=1;i<=n;i++)
	{
		cin>>p[i];
	}
	long long sum=0;//剩余需走站点 
	long long sy=0;//剩余油量 
	long long ans=0;//剩余可走路程 
	long long pi=0;//总价格 
	for(int i=1;i<n;i++)
	{
		if(ans>s[i])
		{
			ans-=s[i];
			sum--;
		}
		else
		{
			int lu=0;
			for(int j=i;j<n;j++)
			{
				if(p[i]>p[j])break;
				else
				{
					lu+=s[j];
					sum++;
				}
			}
			lu-=ans;//减去买油之前剩余的油可以走的路程 
			int y=ceil(lu*1.0/d*1.0);//需要的油量 
			pi+=p[i]*y;
			ans+=y*d;
			ans-=s[i];
		}
	}
	cout<<pi;
}
2024/1/27 16:31
加载中...