P1090求调
  • 板块灌水区
  • 楼主Cr_ft
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/4/12 22:33
  • 上次更新2023/10/23 18:37:54
查看原帖
P1090求调
681616
Cr_ft楼主2023/4/12 22:33
using namespace std;
int n,a[10005],t,ans;
void put_(int b){
	a[++t]=b;
	int s=t;
	int d=s/2;
	while(d>0&&a[s]<a[d]){
		swap(a[s],a[d]);
		s=d;
		d=s/2;
	}
}
void pop(){
	a[1]=a[t];
	--t;
	int d=1,s=2;
	while(s<=t&&a[d]>a[s]){
		swap(a[d],a[s]);
		d=s;
		s=2*d;
	}
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;++i){
		int b;
		scanf("%d",&b);
		put_(b);
	}
	for(int i=1;i<n;++i){
		int k=0;
		if(a[2]>a[3]){
			a[3]+=a[1];
			k=a[3];
		}else{
			a[2]+=a[1];
			k=a[2];
		}
		pop();
		ans+=k;
	}
	printf("%d",ans);
	return 0;
}

P1090小根堆做法,但是只A了一个点

求dalao们帮帮蒟蒻orz

2023/4/12 22:33
加载中...