ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

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;
}