C++ 35分求调
查看原帖
C++ 35分求调
1050624
woshilaoliu7楼主2023/11/2 20:39
#include<iostream>
#include<cstdio>
#include<cmath>
struct zuoti{
	int youjia;
	int juli;
}a[100005];
long long sum[100005]={0}; 
using namespace std;
int main(){
// 	freopen("road.in","r",stdin);
// 	freopen("road.out","w",stdout); 
	int n,d;
	int t,xiaode;
	long long summ=0,dangqian=0; 
	cin >> n >> d;
	sum[n+1]=-1;
	for(int i=2;i<=n;i++){
		cin >> a[i].juli;
		sum[i]=sum[i-1]+a[i].juli;
	}
	for(int i=1;i<=n;i++){
		cin >> a[i].youjia;
	}
	int flag=1;
	while(flag<n){
		for(int i=flag;i<=n+1;i++){
			if(a[i].youjia<a[flag].youjia){
				if(i==n+1){
					int sevennn;
					if((sum[n]-sum[flag]-dangqian)%d) sevennn=(sum[n]-sum[flag]-dangqian)/d+1;
					else sevennn=(sum[n]-sum[flag]-dangqian)/d;
					int sixxx=summ+sevennn*a[flag].youjia; 
					cout << sixxx;
					return 0;
				}
				else{
					if((sum[i]-sum[flag]-dangqian)%d){
						summ+=((sum[i]-sum[flag]-dangqian)/d+1)*a[flag].youjia;
					}
					else {
						summ+=((sum[i]-sum[flag]-dangqian)/d)*a[flag].youjia;
					}
						dangqian=abs(((sum[i]-sum[flag]-dangqian)/d)*d-sum[i]+sum[flag]);
						flag=i;
						break;
				}
			}
		} 
	}
	cout << summ; 
	fclose(stdin);
	fclose(stdout);
	return 0;
} 

2023/11/2 20:39
加载中...