問題一覧 > 通常問題

No.2516 Credit Creation

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 小数誤差許容問題 絶対誤差または相対誤差が$10^{-9}$ 以下。ただし、ジャッジ側の都合で500桁未満にしてください
タグ : / 解いたユーザー数 164
作問者 : MasKoaTSMasKoaTS / テスター : ShirotsumeShirotsume fky_fky_
0 ProblemId : 8338 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-10-25 10:49:11

問題文

うりぼー王国には $1,2,\dots,N$ の番号が付いた $N$ 個の銀行があります。

うりぼー王国では通貨の単位として「ビーフ」が用いられており、その量は非負の実数値で表されます。

最初、銀行 $1$ の預金額は $100$ ビーフであり、それ以外のすべての銀行の預金額は $0$ ビーフです。
これらの銀行について、$i=1,2,\dots,N$ の順に次の操作が行われます。

  • 銀行 $i$ の預金額を $x$ ビーフとする。初めに、銀行 $i$ は帳簿に $x$ を書き込む。次に、銀行 $i + 1$ が存在するならば銀行 $i$ は $Rx$ ビーフを手元に残し、 $(1 - R)x$ ビーフを銀行 $i+1$ に預ける。

    この操作の後、銀行 $i+1$ の預金額は $(1-R)x$ ビーフとなる。

うりぼー王国の総預金額を、この操作の過程で帳簿に書き込まれた実数の総和とします。この値を求めてください。

制約

  • $2 \leq N \leq 100$

  • $N$ は整数

  • $0 < R < 1$

  • $R$ は小数部の桁数が高々 $2$ である実数

入力

入力は次の形式で与えられます。

$N$
$R$
  • $1$ 行目には $N$ が与えられる

  • $2$ 行目には $R$ が与えられる

出力

答えを $1$ 行に出力し、最後に改行してください。

出力された値については、想定解答との絶対誤差または相対誤差が $10^{−9}$ 以下であれば正解と判定されます。

なお、本問の想定解答は必ず真の値に等しいことが保証されます。

サンプル

サンプル1
入力
3
0.05
出力
285.25

最初、銀行 $1$ の預金額は $100$ ビーフであり、銀行 $2, 3$ の預金額はともに $0$ ビーフです。

銀行 $1$ は 実数 $100$ を帳簿に書き込んでから、$100 \times (1 - 0.05) = 95$ ビーフを銀行 $2$ に預けます。

これにより、銀行 $2$ の預金額は $95$ ビーフとなります。

次に、銀行 $2$ は 実数 $95$ を帳簿に書き込んでから、$95 \times (1 - 0.05) = 90.25$ ビーフを銀行 $3$ に預けます。

これにより、銀行 $3$ の預金額は $90.25$ ビーフとなります。

最後に、銀行 $3$ は実数 $90.25$ を帳簿に書き込みます。銀行 $4$ は存在しないので、操作はこれで終了します。

以上より、総預金額は $100 + 95 + 90.25 = 285.25$ ビーフとなります。

サンプル2
入力
30
0.3
出力
333.325820219903102580637378917

本問の想定解答は必ず真の値に等しいことが保証されますが、出力された値が想定解答と完全に一致しない場合でも、
想定解答との絶対誤差または相対誤差が $10^{−9}$ 以下であれば正解と判定されます。

C++でstd::coutを用いる場合、出力値の表示桁数に注意してください。

サンプル3
入力
100
0.99
出力
101.0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。