AOJ 3039 - Aizu Competitive Programming Camp 2018 Day 2 A Special Chat
解法
大きい値段から貪欲に払えるだけ払えば答えが求まります。
じつは、求められているものが合計金額なので、500についてのみ考えればいいらしいです。
提出コードはこちらになります。
#include <bits/stdc++.h> using namespace std; int memo[4] = {10000, 5000, 1000, 500}; int ans = 0; int p; int main() { int i; cin >> p; for(i = 0; i < 4; ++i) { while(memo[i] <= p) { ans += memo[i]; p -= memo[i]; } } cout << ans << endl; return 0; }