整数の切り上げの問題。意外と正確に解くのは大変かもしれない。
問題概要
ベースとなるアイスクリームの金額は 250 円で、高さは cm である。追加のアイスクリームは 1 個につき 100 円で、1 個追加するごとにアイスクリームタワーの高さが
cm 増える。
この店で高さが cm 以上のアイスクリームタワーにするために必要な最小コストを求めよ。
制約
考えたこと
追加で必要なアイスクリームの個数 need を求めよう! それが求められれば答えは
250 + 100 * need (円)
となる。
まず、 のときは何もする必要がないので
need = 0 である。
のときは、いわゆる「切り上げ処理」となる。切り上げ処理については、次の記事を参照。
増やすべき高さの差分は、 であり、
ずつ増やしていくとき、増やすべき高さを充足するために必要な個数
need は
need = (S - A + B - 1) / B
と求められる。
コード
#include <bits/stdc++.h> using namespace std; int main() { int S, A, B, need; cin >> S >> A >> B; if (A >= S) need = 0; else need = (S - A + B - 1) / B; cout << 250 + 100 * need << endl; }