【DPメニュー】> 【漸化式】STEP: 4 特殊な2項間漸化式 2 (paizaランク B 相当) [難易度: 1289 ±19]
※リンク先へ移動するためには[paiza]へのログインが必要です。
整数 x, d_1, d_2, Q と Q 個の整数 k_1, k_2, ... , k_Q が与えられます。
次のように定められた数列の k_i 項目の値を順に出力してください。
・ a_1 = x
・ a_n = a_{n-1} + d_1 (n が奇数のとき、n ≧ 3)
・ a_n = a_{n-1} + d_2 (n が偶数のとき)
入力値(例)
3 7 -4
5
1
2
3
4
10
出力値(例)
3
-1
6
2
11
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php list($x, $d1, $d2) = explode(" ", trim(fgets(STDIN))); $q = trim(fgets(STDIN)); $a[1] = $x; for ($i = 2; $i <= 1000; $i++) { if ($i % 2 == 0) { $a[$i] = $a[$i - 1] + $d2; } else { $a[$i] = $a[$i - 1] + $d1; } } for ($i = 0; $i < $q; $i++) { $k = trim(fgets(STDIN)); echo $a[$k]. "\n"; } ?> |