电池的寿命

Descriptions:

小S新买了一个掌上游戏机,这个游戏机由两节5号电池供电。为了保证能够长时间玩游戏,他买了很多5号电池,这些电池的生产商不同,质量也有差异,因而使用寿命也有所不同,有的能使用5个小时,有的可能就只能使用3个小时。显然如果他只有两个电池一个能用5小时一个能用3小时,那么他只能玩3个小时的游戏,有一个电池剩下的电量无法使用,但是如果他有更多的电池,就可以更加充分地利用它们,比如他有三个电池分别能用3、3、5小时,他可以先使用两节能用3个小时的电池,使用半个小时后再把其中一个换成能使用5个小时的电池,两个半小时后再把剩下的一节电池换成刚才换下的电池(那个电池还能用2.5个小时),这样总共就可以使用5.5个小时,没有一点浪费。

现在已知电池的数量和电池能够使用的时间,请你找一种方案使得使用时间尽可能的长。

Input

输入包含多组数据。每组数据包括两行,第一行是一个整数N (2 ≤ N ≤ 1000),表示电池的数目,接下来一行是N个正整数表示电池能使用的时间。

Output

对每组数据输出一行,表示电池能使用的时间,保留到小数点后1位。

Sample Input

2
3 5
3
3 3 5

Sample Output

3.0
5.5

题目链接:
https://vjudge.net/problem/OpenJ_Bailian-3468

比较水的一题,两种情况

1、寿命最长的电池寿命高于其他所有电池寿命之和,此时答案是其他电池寿命之和

2、寿命最长的电池寿命小于或等于其他所有电池寿命之和,此时答案就是总电池寿命的一半

AC代码:

#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <sstream>
#define mod 1000000007
#define eps 1e-6
#define ll long long
#define INF 0x3f3f3f3f
#define ME0(x) memset(x,0,sizeof(x))
using namespace std;
int main()
{
int n;
double a[];
while(cin >> n)
{
ME0(a);
for(int i=; i<n; i++)
cin>>a[i];
sort(a,a+n);
double sum=;
for(int i=; i<n-; i++)
sum+=a[i];
if(a[n-]>sum)
printf("%.1lf\n",sum);
else
{
double t=(sum+a[n-])/;
printf("%.1lf\n",t);
}
}
}

最新文章

  1. [原创] Delphi小工具(Windows资源管理器右键菜单扩展)
  2. AD 域账号登录
  3. 解决Exception in thread &quot;main&quot; java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
  4. mysql 存储过程 事务; mysql的事务中包含一个存储过程
  5. 织梦dedecms源码安装方法
  6. 从Eclipse里导出Android程序到手机里
  7. 导入java项目时出现红色叹号问题的解决
  8. 微信app支付android客户端以及.net服务端实现
  9. restful架构风格设计准则(一)以资源为中心、自描述的请求响应、资源状态迁移为粒度
  10. 理解性能的奥秘——应用程序中慢,SSMS中快(3)——不总是参数嗅探的错
  11. springboot 学习进度
  12. Django——图书管理系统
  13. npm run dev的错误
  14. eclipse debug模式
  15. VS2017企业版的密钥
  16. excel2007vba绘图1
  17. MATLAB二分法函数求根
  18. CSS------如何让ul中的li分为两列甚至多列
  19. JavaScript高级 面向对象(7)--深拷贝与浅拷贝
  20. 基于jQuery加入购物车飞入动画特效

热门文章

  1. 基于EasyIPCamera实现的数字网络摄像机IPCamera的模拟器IPC RTSP Simulator
  2. UIView封装动画--iOS利用系统提供方法来做关键帧动画
  3. (linux)struct inode 和 struct file
  4. buntu下命令行安装jdk,android-studio,及genymotion虚拟机来进行android开发【转】
  5. Eclipse配置python环境
  6. macbook清理磁盘空间
  7. hdu 1753 大明A+B(大数)
  8. yii中调取字段名称时label与labelEx的区别
  9. linux下syslog使用说明
  10. ceph学习之PG