百炼 3468:电池的寿命
北大 计算机 2013研究生推免上机考试(校外) B题
OJ提交链接:http://bailian.openjudge.cn/practice/3468/
解题思路:
贪心;
其实对于每一组数据只要判断最大的那个数是不是比其余的数的和都要大,如果成立的话那当然就是剩下的所有电池与最大的电池车轮战,最大为n-1个数的和,如果不成立的话那么最大就是n个数的和的一半,也就是说电池是一定可以全部用完的。
源代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int N;
int ans[1005];
while(cin>>N){
int sum=0;
for(int i=0;i<N;i++){
cin>>ans[i];
sum=sum+ans[i];
}
sort(ans,ans+N);
double x;
if(sum-ans[N-1]<=ans[N-1]){
x=(sum-ans[N-1])*1.0;
}
else{
x=sum*1.0/2;
}
printf("%.1f\n",x);
}
return 0;
}