求助!只有5分www
查看原帖
求助!只有5分www
1280959
Ophi楼主2024/2/25 17:59
#include<bits/stdc++.h>
#define ll long long
#define db double
using namespace std;
const ll N=1e5+5;
ll n,d,v[N],a[N],sumv[N],ans;
db now;
vector<ll> vec;
int main(){
	scanf("%lld%lld",&n,&d);
	for(ll i=1;i<n;i++){
		scanf("%lld",&v[i]);
		sumv[i]=sumv[i-1]+v[i];	
	}
	for(ll i=1;i<=n;i++){
		scanf("%lld",&a[i]);
		if(i==1||a[vec[vec.size()-1]]>a[i])
			vec.push_back(i);
	}
	for(ll i=0,nextlength,oil;i<vec.size()-1;i++){
		nextlength=sumv[vec[i+1]-1]-sumv[vec[i]-1];
		if(now<nextlength){
			oil=ceil(1.0*(nextlength-now)/d);
			ans+=oil*a[vec[i]];
			now+=oil*d;
		}
		now-=nextlength;
	}
	printf("%lld",ans);
	return 0;
}
2024/2/25 17:59
加载中...