60pts求大佬优化OvO
查看原帖
60pts求大佬优化OvO
821886
songxl123楼主2023/8/9 20:38

代码如下QwQ

#include<bits/stdc++.h>
using namespace std;
int n,a[100001],b[100001],c[100001],maxn,jl,sum;
bool d[100001];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}for(int i=1;i<=n;i++){
		cin>>b[i];
	}
	for(int i=1;i<=n;i++){
		if(a[i]*2+b[i]>maxn){
			maxn=a[i]*2+b[i];
			jl=i;
		}
	}
	d[jl]=1;
	sum+=maxn;maxn=0;
	cout<<sum<<endl;
	for(int j=1;j<n;j++){
		int h=0;
		for(int i=1;i<=n;i++){
			if(d[i]==0){
				if(a[i]>a[jl]){
					c[i]=2*(a[i]-a[jl])+b[i];
				}else{
					c[i]=b[i];
				}
				if(c[i]>maxn){
					maxn=c[i];
					h=i;
				}	
			}
		}
		d[h]=1;
		if(a[h]>a[jl]){
			sum+=2*(a[h]-a[jl]);
			jl=h;
		}	
		sum+=maxn;
		maxn=0;
		cout<<sum<<endl;
	}
	return 0;
} 
2023/8/9 20:38
加载中...