yukicoder No.32 貯金箱の憂鬱
問題概要
硬貨の枚数を最小枚数に変更する。
解法
まず、合計金額を求める。それを1000円、100円、25円、1円の順に優先的に変換していけばいい。
ミス
なし。
コード
#include <iostream> #include <queue> #include <vector> #include <cstdio> #include <algorithm> using namespace std; typedef long long ll; #define rep(i,n) for(int i=0;i<(n);i++) const int INF = 1e9; int main(void){ int l, m, n; cin >> l >> m >> n; int sum = 0; sum += l * 100 + m * 25 + n; int ans = 0; //1000円硬貨に sum -= 1000 * (sum / 1000); //100円硬貨に ans += sum / 100; sum -= (sum / 100) * 100; //25円硬貨に ans += sum / 25; sum -= (sum / 25) * 25; //1円硬貨に ans += sum; cout << ans << endl; return 0; }