csp-jT2求调
  • 板块灌水区
  • 楼主zvzbpkvo1
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/10/25 11:36
  • 上次更新2023/11/2 11:29:30
查看原帖
csp-jT2求调
988068
zvzbpkvo1楼主2023/10/25 11:36
#include <iostream>
#include <cmath>
#define mas 10010
using namespace std;
unsigned long long n, d, ans, ready;
int v[mas], a[mas];
int main(){
	freopen("road.in", "r", stdin);
	freopen("road.out", "w", stdout);
	ans=0;
	cin >> n >> d;
	for (int i=0;i<n-1;i++){
		cin >> v[i];
	}
	for (int i=0;i<n;i++){
		cin >> a[i];
	}
	int nows=0;
	for (int i=0;i<n-1;i++){
		ready=v[i]-nows;
		if (i==n-1){ // a
			nows=ceil(ready*1.0/d)*d+nows-v[i];
			ans+=ceil(ready*1.0/d)*a[i];
		}else if (a[i]>a[i+1]){ // b
			nows=ceil(ready*1.0/d)*d+nows-v[i];
			ans+=ceil(ready*1.0/d)*a[i];
		}else{ // c
			int lc=0;
			int j;
			for (j=i;j<n-1;j++){
				if (a[i]>a[j]) break;
				else lc+=v[j];
			}
			ready=lc-nows;
			nows=ceil(ready*1.0/d)*d+nows-lc;
			ans+=ceil(ready*1.0/d)*a[i];
			i=j-1;
		}
	}
	cout << ans << endl;
	fclose(stdin);fclose(stdout);
	return 0;

}

45pts

2023/10/25 11:36
加载中...