爆零求调!!!
查看原帖
爆零求调!!!
745741
zouzh楼主2024/7/5 15:03
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int a[100005],v[100005];
int main(){
//	freopen ("road2.in","r",stdin);
//	freopen ("road2.out","w",stdout);
	int n,d;
	scanf ("%d%d",&n,&d);	
	for (int i=1;i<n;i++)scanf ("%d",&v[i]);
	for (int i=1;i<=n;i++)scanf ("%d",&a[i]);
	int minn=a[1];
	int m=0,way,last=0;
	for (int i=1;i<=n-1;i++){
		if (a[i]<=minn){
			if (way*1.0/d==way/d)m+=way/d*minn,last=0;
			else m+=(way/d+1)*minn,last=(way/d+1)*d-way;
			minn=a[i];
			way=(-1)*last;
		}
		way+=v[i];	
	}
	if (way*1.0/d==way/d)m+=way/d*minn;
	else m+=(way/d+1)*minn;
	printf ("%d",m);
	return 0;
}



大小样例都过了,大样例一开long long就错了。下载了测试点一,在Dev中答案是对的,但一提交就全错。

2024/7/5 15:03
加载中...