結果
問題 | No.32 貯金箱の憂鬱 |
ユーザー |
![]() |
提出日時 | 2023-05-29 10:04:42 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 1,928 bytes |
コンパイル時間 | 1,349 ms |
コンパイル使用メモリ | 29,568 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-28 09:30:30 |
合計ジャッジ時間 | 2,217 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 12 |
ソースコード
#include <stdio.h>#include <malloc.h>char str[60000];int str_len = 0;/// <summary>/// グローバル変数strの中身を入力された文字列で上書きする/// </summary>void ReadString() {char c = getchar();str_len = 0;while (c != '\n') {str[str_len] = c;c = getchar();str_len++;}}/// <summary>/// 入力された数字を返す/// </summary>/// <returns></returns>int ReadNum() {char c = getchar();int num = 0;int numCnt = 0;while (c != '\n') {num = num * 10 + c - '0';c = getchar();}return num;}/// <summary>/// 引数numsの中の値を昇順にソートする/// </summary>/// <param name="nums">ソートしたい配列</param>/// <param name="n">ソートしたい配列の要素数</param>void Sort(int* nums, int n) {for (int i = 0;i < n - 1;i++) {for (int j = i + 1;j < n;j++) {if (nums[i] > nums[j]) {int work = nums[i];nums[i] = nums[j];nums[j] = work;}}}}/// <summary>/// ReadStringの文字列のうち、スペースで区切られた左側か右側を取得する/// </summary>/// <param name="leftIs">左が欲しければtrue,右ならfalse</param>/// <returns>引数に対応した側の数字を返す</returns>int GetLR(int leftIs) {int cnt = 0;int num = 0;int left = 0;int right = 0;while (1) {if (cnt >= str_len) {right = num;break;}if (str[cnt] == ' ') {left = num;num = 0;cnt++;continue;}num = num * 10 + (str[cnt] - '0');cnt++;}if (leftIs) {return left;}else {return right;}}int main(){int bill_1000 = 0;int coin_100 = ReadNum();int coin_25 = ReadNum();int coin_1 = ReadNum();int sum = (coin_1) + (coin_25 * 25) + (coin_100 * 100);bill_1000 = sum / 1000;sum %= 1000;coin_100 = sum / 100;sum %= 100;coin_25 = sum / 25;sum %= 25;coin_1 = sum;printf("%d\n", coin_100 + coin_25 + coin_1);}