球条
查看原帖
球条
1153724
lsy18653707830楼主2024/10/5 16:56
#include<iostream>
#include<cmath>
using namespace std;
const int f=1e5+5;
double a[f],b[f];
int main(){
	int n,d,ans=0,sum=0;
	bool flag=0;
	cin>>n>>d;
	for(int i=1;i<=n-1;i++) cin>>a[i];
	for(int i=1;i<=n;i++) cin>>b[i];
	for(int i=1;i<=n-1;i++){
		if(flag==1){
			flag=0;
			ans-=a[i];
			continue;
		}
		int count=0;
		if(ans>=a[i]){
			ans-=a[i];
			continue;
		}
		while(count*d+ans<a[i]) count++;
		if(count*d+ans<a[i]) count++;
		if(count*b[i]+ans>ceil((a[i]+a[i+1])/d)){
			sum+=count*b[i];
			ans+=count*d;
			ans-=a[i];
			flag=1;
			continue;
		}
		sum+=count*b[i];
		ans+=count*d;
		ans-=a[i];
	}
	cout<<sum;
	return 0;
}
2024/10/5 16:56
加载中...