1229:电池的寿命

【算法分析】

对于每一组数据只要判断最大的那个数是不是比其余的数的和都要大,如果成立的话那当然就是剩下的所有电池与最大的电池车轮战,最大为n-1个数的和。如果不成立的话那么最大就是n个数的和的一半。


【代码】

#include
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;
}

你可能感兴趣的:(贪心算法,c++,青少年编程,数学建模,算法,开发语言)