0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AtCoderログ:0058 - ABC 139 B

Last updated at Posted at 2021-08-06

問題

問題文

高橋くんの家には電源プラグの差込口が $1$ 口しかありません。
そこで、高橋くんは $A$ 個口の電源タップをいくつか使って未使用の差込口を $B$ 口以上に拡張したいと考えています。
$A$ 個口の電源タップ $1$ つと未使用の差込口 $1$ 口を使って、新たに差込口を $A$ 口増やすことができます。
最小でいくつの電源タップが必要でしょうか。

制約

・入力は全て整数である。
・$2 \le A \le 20$
・$1 \le B \le 20$

収録されている問題セット

回答

回答1 (AC)

$A$ 個口の電源タップを増設すると差し込み口は $A-1$ 個増えます。現在の差し込み口の個数を now, 増設した電源タップの個数を add とおき、now が b より小さい間は増設を繰り返せば良いでしょう。コードは以下のようになりました。

abc139b-1.cpp
#include <bits/stdc++.h>
using namespace std;

int main() {
  int a, b;
  cin >> a >> b;

  int now = 1, add = 0;
  while ( now<b ) {
    now += a-1;
    add += 1;
  }

  cout << add << endl;
}

回答1 (AC)

増設する電源タップの個数を計算式で求めることが出来ます。$A$ 個口の電源タップを増設すると差し込み口は $A-1$ 個増えます。増設した差し込み口の個数は最低で $B-1$ 個なので、必要な電源タップの個数は $\lceil \frac{B-1}{A-1} \rceil$ 個となります。割り算を小数にキャストすることが必要です。コードは以下のようになりました。

abc139b-2.cpp
#include <bits/stdc++.h>
using namespace std;

int main() {
  int a, b;
  cin >> a >> b;

  cout << ceil((float)(b-1)/(a-1)) << endl;
}
---

# 調べたこと
## [AtCoder の解説](https://atcoder.jp/contests/abc139/tasks/abc139_b/editorial) → [ユーザ解説](https://blog.hamayanhamayan.com/entry/2019/09/04/220545)
回答2と同じ方針でした。なお「切り上げする場合は、分子に分母-1を足すことで切り上げが可能」を採用すると、小数へのキャストが不要となるようです。

## [AtCoder の解説](https://atcoder.jp/contests/abc139/tasks/abc139_b/editorial) → [公式解説](https://img.atcoder.jp/abc139/editorial.pdf)
回答1と同じ方針でした。

# リンク
## 前後の記事
- 前の記事  [AtCoderログ:0057 - ABC 042 B](https://qiita.com/RoadLynton/items/e8b9c37c092d51aaf418)
- 次の記事  [AtCoderログ:0059 - AGC 027 A](https://qiita.com/RoadLynton/items/15ca251f738b15e80efa)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?