問題概要
1,25,100円硬貨、1000円札がある。 今それぞれの硬貨が複数枚与えられるので、硬貨の枚数を最小化せよ。
(硬貨の枚数)$≦10^3$
解法
値段の低い硬貨から順に大きい値段の硬貨に両替してもらうと、硬貨の枚数を最小化できる。
計算量:$O(1)$
ソース
#include <bits/stdc++.h> using namespace std; using VS = vector<string>; using LL = long long; LL ans = 0LL; int main() { cin.tie(0); ios_base::sync_with_stdio(false); int c100, c25, c1; cin >> c100 >> c25 >> c1; c25 += c1 / 25; c1 %= 25; c100 += c25 / 4; c25 %= 4; c100 %= 10; ans = c100 + c25 + c1; cout << ans << "\n"; return 0; }