~cpp
// no10137 - The Trip
#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
const int MAX = 100;
int exchangeMoney(const int * cost, const int n);
void showExchange(const int * ex, const int count);
int main() // cent단위로 계산
{
int n; // 학생수
char money[7]; // 돈
int exchangeCost[MAX]; // 교환값
int i, c;
int count = 0;
while (cin >> n)
{
if (n == 0)
break;
cin.get();
int costs[1000]; // 각 학생들의 지출 비용
for (i=0; i<n; i++)
{
c = 0;
while (cin.peek() != 'n')
{
if (cin.peek() == '.')
cin.get();
else
cin.get(money[c++]);
}
money[c] = '';
cin.get();
costs[i] = atoi(money);
}
exchangeCost[count++] = exchangeMoney(costs, n);
}
showExchange(exchangeCost, count);
return 0;
}
int exchangeMoney(const int * cost, const int n)
{
int sum = 0; // 합계
int aver, r; // 평균, 나머지
int i;
for (i=0; i<n; i++)
sum += cost[i];
aver = sum/n;
r = sum%n;
int exchange = 0;
for (i=0; i<n; i++)
{
if (cost[i] > aver)
{
exchange += cost[i] - aver;
if (r > 0)
{
exchange--;
r--;
}
}
}
return exchange;
}
void showExchange(const int * ex, const int count)
{
int i;
int dollor, cent;
for (i=0; i<count; i++) // dollor단위로 출력
{
dollor = ex[i]/100;
cent = ex[i]%100;
cout << "$" << dollor << ".";
if (cent < 10)
cout << "0" << cent;
else
cout << cent;
cout << endl;
}
}