您的位置:首页 > 其它

UVa 10137 The Trip

2014-05-13 19:54 302 查看
注意浮点数精度只有7位,只有用double才可以通过。为了精度最好把数据当字符串来输入。
#include <cstdio>
#include <vector>
#include <string.h>
using namespace std;

vector<int> PT;
void solve(int n,int average)
{
int res=0;
int res1=0;
int res2=0;
for(int i=0;i<n;i++)
{
// data=(PT[i]+0.001)*100;
if(PT[i]<average) res1+=average-PT[i];
else if(PT[i]>average) res2+=PT[i]-average-1;
}
res=res1<res2?res2:res1;
printf("$%.2f\n",res/100.0);

}
int main()
{
int n;
int p;
double price;
int average=0;
while(1)
{
scanf("%d",&n);
PT.clear();
average=0;
if(n==0)break;
for(int i=0;i<n;i++)
{
scanf("%lf",&price);
p=(price+0.001)*100;
PT.push_back(p);
average+=p;
}
average=average/n;
solve(n,average);

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uva