公司合并
Description
I Moo被M国政府聘请做经济规划专家,现在M国马上给了I Moo新任务: 在华尔街有N家公司,现在面对经济危机不得不进行公司合并,使这些公司合并成一个大公司从而存活下来。现在政府将这N家公司上一季度的盈利率告诉I Moo,并且规定合并后的公司盈利率为上季度各公司盈利率的平均值,现在要求I Moo使用最优的合并方法使这家大公司盈利率最大。例如:有3家公司,盈利率分别为r0= 5,r1= -7 (负数表示上一季度亏损),r2= 3,那么最优方法是将r1与r2合并,再将合并后的公司与r0合并,所以最大盈利率为1.50(结果保留2位小数)。
Input
测试数据包含多组。 第一行输入一个正整数N,表示初始公司个数。(N<=50) 第二行输入N个整数,表示N家公司上一季度的盈利率r0,r1,···rn-1。(-1000<=ri<=1000)
Output
每组测试数据输出一行,即合并后得到的最大盈利率。(保留2位小数)
3 5 -7 3 5 12 12 12 12 12
1.50 12.00
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=55;
double firm[maxn];
int main ()
{
int n;
while(~scanf("%d",&n)){
for(int i=0;i<n;i++)
scanf("%lf",&firm[i]);
sort(firm,firm+n);
for(int i=1;i<n;i++)
firm[i]=(firm[i]+firm[i-1])/2;
printf("%.2lf\n",firm[n-1]);
}
return 0;
}
想的太多,做的太少。