atcoder#AGC044A. [AGC044A] Pay to Win
[AGC044A] Pay to Win
题目描述
あなたは という数を持っており、これを に変えようとしています。
あなたが持っている数は、以下の操作により、定まった枚数のコインを支払うことで変化させることができます。
- 枚のコインを支払い、持っている数を 倍する。
- 枚のコインを支払い、持っている数を 倍する。
- 枚のコインを支払い、持っている数を 倍する。
- 枚のコインを支払い、持っている数を 増やす、または 減らす。
これらの操作は、任意の順に何度でも行うことができます。
持っている数を とするには、最小で何枚のコインが必要でしょうか。
個のテストケースについて答えてください。
输入格式
入力は標準入力から与えられる。入力の 行目は以下の通りである。
そして、続く 行が 個のテストケースを表す。 これらはそれぞれ以下の形式の行である。
输出格式
各テストケースに対し、答えを標準出力に出力せよ。テストケースごとに改行すること。
题目大意
[AGC044A] Pay to Win
题目描述
你有一个数字 ,你希望得到数字。
你可以通过以下操作更改数字,需要支付一定数量的硬币:
- 将当前数乘,需要硬币。
- 将当前数乘,需要硬币。
- 将当前数乘,需要硬币。
- 将当前数加或减,需要硬币。
你可以按任意顺序和任意次数执行这些操作。
最少需要多少硬币才能得到?
你需要解决组测试用例。
输入格式
第一行包含一个整数。
随后的行代表个测试用例。每行包含五个整数。
输出格式
对于每个测试用例,输出一行表示答案。
样例 #1
样例输入 #1
5
11 1 2 4 8
11 1 2 2 8
32 10 8 5 4
29384293847243 454353412 332423423 934923490 1
900000000000000000 332423423 454353412 934923490 987654321
样例输出 #1
20
19
26
3821859835
23441258666
提示
约束
- 都是整数。
Sample Explanation 1
对于第一个测试用例,达到最低成本的一系列操作是:
- 初始 .
- 用个硬币使其加
- 用个硬币使其乘
- 用个硬币使其乘
- 用个硬币使其乘
- 用个硬币使其减
对于第二个测试用例,达到最低成本的一系列操作是:
- 初始 .
- 用个硬币使其加
- 用个硬币使其乘
- 用个硬币使其乘
- 用个硬币使其减
5
11 1 2 4 8
11 1 2 2 8
32 10 8 5 4
29384293847243 454353412 332423423 934923490 1
900000000000000000 332423423 454353412 934923490 987654321
20
19
26
3821859835
23441258666
提示
制約
- はすべて整数である。
Sample Explanation 1
個目のテストケースで、必要な最小枚数である 枚のコインで目標を達成する方法は以下の通りです。 - はじめ、持っている数 (以下、これを とする) は である。 - 枚のコインを支払い、 を 増やす ()。 - 枚のコインを支払い、 を 倍する ()。 - 枚のコインを支払い、 を 倍する ()。 - 枚のコインを支払い、 を 倍する ()。 - 枚のコインを支払い、 を 減らす ()。 個目のテストケースで、必要な最小枚数である 枚のコインで目標を達成する方法は以下の通りです。 - はじめ、 である。 - 枚のコインを支払い、 を 増やす ()。 - 枚のコインを支払い、 を 倍する ()。 - 枚のコインを支払い、 を 倍する ()。 - 枚のコインを支払い、 を 増やす ()。