社区讨论

-j T2 85 求调

灌水区参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@loh9rwcu
此快照首次捕获于
2023/11/02 22:16
2 年前
此快照最后确认于
2023/11/03 10:53
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n,d,now_r,now_p;
struct node{
	int p,v,ans;
}a[100005];
int ceil(int a,int b){
	if(a%b==0)
		return a/b;
	else return a/b+1;
}
int main(){
	//freopen("road.in","r",stdin);
	//freopen("road.out","w",stdout);
	cin>>n>>d;
	for(int i=1;i<n;i++)cin>>a[i].v;
	for(int i=1;i<=n;i++)cin>>a[i].p;
	for(int i=1;i<=n;i++){
		if(a[i].ans!=-1){
			for(int j=i+1;j<=n;j++){
				if(a[i].p<a[j].p){
					a[j].ans=-1;
					a[i].ans+=a[j].v;
				}
				else break;
			}
			a[i].ans+=a[i].v;
		}
	}
	for(int i=1;i<n;i++){
		if(a[i].ans!=-1){
			int shop=ceil((a[i].ans-now_r),d);
			int price=shop*a[i].p;
			now_p+=price;
			now_r+=shop*d;
		}
		now_r-=a[i].v;
	}
	cout<<now_p;
	return 0;
}

85

回复

3 条回复,欢迎继续交流。

正在加载回复...