【算法分析】
对于每一组数据只要判断最大的那个数是不是比其余的数的和都要大,如果成立的话那当然就是剩下的所有电池与最大的电池车轮战,最大为n-1个数的和。如果不成立的话那么最大就是n个数的和的一半。
【代码】
#include<bits/stdc++.h>
using namespace std;
int a[1001];
int main(){
int n, d;
double ans;
while(scanf("%d", &n) != EOF){
ans = 0;
d = -1;
for(int i = 1; i <= n; i ++){
cin >> a[i];
d = max(d, a[i]);
ans += a[i];
}
if(ans - d < d)
printf("%.1lf\n", ans - d);
else
printf("%.1lf\n", ans / 2);
}
return 0;
}