80分求调_(:з」∠)_
查看原帖
80分求调_(:з」∠)_
754840
xuchong123321楼主2023/11/1 21:00
#include<bits/stdc++.h>
using namespace std;
long long n,m,go,kai,jl,now=1;
long long ans;
long long v[100010];
long long a[100010];
bool A;
int main()
{
//	freopen("road.in","r",stdin);
//	freopen("road.out","w",stdout);
	cin>>n>>m;
	for(int i=2;i<=n;i++)
	{
		cin>>v[i];
	}
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=2;i<=n;i++)
	{
		jl+=v[i];
		if(a[i]<a[now])
		{
			jl-=min(kai,jl);
			kai-=min(kai,jl);
			ans=ans+(jl-jl%m)/m*a[now]+min((long long)1,jl%m)*a[now];
			kai=(jl-jl%m)+min((long long)1,jl%m)*m;
			kai-=jl;
			jl=0;
			now=i;
		}
	}
	ans=ans+(jl-jl%m)/m*a[now]+min((long long)1,jl%m)*a[now];
	cout<<ans;
	return 0;
}
```cpp
2023/11/1 21:00
加载中...