pat-1125

実際、この質問はハフマンツリーに少し似ています 

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
	int n;
	scanf("%d",&n);
	double a[n];
	fill(a,a+n,0);
	for(int i=0;i<n;i++){
		scanf("%lf",&a[i]);//输入double型就要%lf把scanf后面跟的东西弄对(注意) 
	}
	sort(a,a+n);
	for(int i=0;i<n-1;i++){
		
		a[i+1]=(a[i]+a[i+1])/2;
	}
	printf("%d",(int)a[n-1]);
	return 0;
}

総括する

1.最小の半分が見つかりませんでした— + 2番目に小さい半分<3番目に小さい、そして私はこのルールについて真剣に考えず、毎回激しくアレンジして残業を引き起こしました

2. doubleまたは他のタイプを入力するときは、scanfおよび ""の後に何を書くべきかについて注意してください。 

英語

この質問の隠されたルールに関するその他の質問を見つけてください。質問の語幹に従ってcincoutの使用を中止してください。 

おすすめ

転載: blog.csdn.net/m0_45359314/article/details/113064172