#include <stdio.h>
#include <limits.h>
unsigned long long ConstructMoney(unsigned long long dollars, unsigned cents)
{
return dollars * 100 + cents;
}
void PrintWithCommas(unsigned long long n)
{
char s[sizeof n * CHAR_BIT + 1];
char *p = s + sizeof s;
unsigned count = 0;
*--p = '\0';
do
{
*--p = '0' + n % 10;
n /= 10;
if (++count == 3 && n)
{
*--p = ',';
count = 0;
}
} while (n);
}
void PrintMoney(unsigned long long n)
{
PrintWithCommas(n / 100);
n %= 100;
}
int main(void)
{
PrintMoney
(ConstructMoney
(0, 0)); puts(""); PrintMoney
(ConstructMoney
(0, 1)); puts(""); PrintMoney
(ConstructMoney
(1, 0)); puts(""); PrintMoney
(ConstructMoney
(1, 23)); puts(""); PrintMoney
(ConstructMoney
(12, 34)); puts(""); PrintMoney
(ConstructMoney
(123, 45)); puts(""); PrintMoney
(ConstructMoney
(1234, 56)); puts(""); PrintMoney
(ConstructMoney
(12345, 67)); puts(""); PrintMoney
(ConstructMoney
(123456, 78)); puts(""); PrintMoney
(ConstructMoney
(1234567, 89)); puts(""); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxsaW1pdHMuaD4KCnVuc2lnbmVkIGxvbmcgbG9uZyBDb25zdHJ1Y3RNb25leSh1bnNpZ25lZCBsb25nIGxvbmcgZG9sbGFycywgdW5zaWduZWQgY2VudHMpCnsKICByZXR1cm4gZG9sbGFycyAqIDEwMCArIGNlbnRzOwp9Cgp2b2lkIFByaW50V2l0aENvbW1hcyh1bnNpZ25lZCBsb25nIGxvbmcgbikKewogIGNoYXIgc1tzaXplb2YgbiAqIENIQVJfQklUICsgMV07CiAgY2hhciAqcCA9IHMgKyBzaXplb2YgczsKICB1bnNpZ25lZCBjb3VudCA9IDA7CiAgKi0tcCA9ICdcMCc7CiAgZG8KICB7CiAgICAqLS1wID0gJzAnICsgbiAlIDEwOwogICAgbiAvPSAxMDsKICAgIGlmICgrK2NvdW50ID09IDMgJiYgbikKICAgIHsKICAgICAgKi0tcCA9ICcsJzsKICAgICAgY291bnQgPSAwOwogICAgfQogIH0gd2hpbGUgKG4pOwogIHByaW50ZigiJXMiLCBwKTsKfQoKdm9pZCBQcmludE1vbmV5KHVuc2lnbmVkIGxvbmcgbG9uZyBuKQp7CiAgUHJpbnRXaXRoQ29tbWFzKG4gLyAxMDApOwogIHB1dGNoYXIoJy4nKTsKICBuICU9IDEwMDsKICBwdXRjaGFyKCcwJyArIG4gLyAxMCk7CiAgcHV0Y2hhcignMCcgKyBuICUgMTApOwp9CgppbnQgbWFpbih2b2lkKQp7CiAgUHJpbnRNb25leShDb25zdHJ1Y3RNb25leSgwLCAwKSk7IHB1dHMoIiIpOwogIFByaW50TW9uZXkoQ29uc3RydWN0TW9uZXkoMCwgMSkpOyBwdXRzKCIiKTsKICBQcmludE1vbmV5KENvbnN0cnVjdE1vbmV5KDEsIDApKTsgcHV0cygiIik7CiAgUHJpbnRNb25leShDb25zdHJ1Y3RNb25leSgxLCAyMykpOyBwdXRzKCIiKTsKICBQcmludE1vbmV5KENvbnN0cnVjdE1vbmV5KDEyLCAzNCkpOyBwdXRzKCIiKTsKICBQcmludE1vbmV5KENvbnN0cnVjdE1vbmV5KDEyMywgNDUpKTsgcHV0cygiIik7CiAgUHJpbnRNb25leShDb25zdHJ1Y3RNb25leSgxMjM0LCA1NikpOyBwdXRzKCIiKTsKICBQcmludE1vbmV5KENvbnN0cnVjdE1vbmV5KDEyMzQ1LCA2NykpOyBwdXRzKCIiKTsKICBQcmludE1vbmV5KENvbnN0cnVjdE1vbmV5KDEyMzQ1NiwgNzgpKTsgcHV0cygiIik7CiAgUHJpbnRNb25leShDb25zdHJ1Y3RNb25leSgxMjM0NTY3LCA4OSkpOyBwdXRzKCIiKTsKICByZXR1cm4gMDsKfQo=