85分,WA,求救
查看原帖
85分,WA,求救
768382
thy80楼主2024/7/29 16:10

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n;
int d;
int v[N],a[N];
long long sum=0;
int main(){
	scanf("%d%d",&n,&d);
	for(int i=1;i<n;i++) scanf("%d",&a[i]);
	for(int i=1;i<=n;i++) scanf("%d",&v[i]);
	int i=0;
	int minn=1;
	v[0]=N;
	a[0]=a[1];
	double x=0;
	double you=0;
	for(i=1;i<n;i++)
	{
		if(v[i]<v[minn])
		{
			if(you*d>=x)
			{
				you-=x*1.0/d;
			} 
			else
			{
				x-=you*d;
				you=0;
				int s=ceil(x*1.0/d);
				sum+=s*v[minn];
				you+=s-(x*1.0/d);
			}
			minn=i;
			x=0;
		}
		x+=a[i];
	}
	if(you*d>=x)
	{
		you-=x*1.0/d;
	} 
	else
	{
		x-=you*d;
		you=0;
		int s=ceil(x*1.0/d);
		sum+=s*v[minn];
		you+=s-(x*1.0/d);
	}
	printf("%lld",sum);
	return 0;
}
2024/7/29 16:10
加载中...