実際、この質問はハフマンツリーに少し似ています
#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の使用を中止してください。