ホワイトデーのお返しの個数
締め切りが 2017/03/14 10:00 AM なので,その 1 分後に投稿されるように予約
この問題の挑戦終了日はホワイトデー。
ということで、バレンタインデーにもらったプレゼントにお返しを送ろうと思っています。
もらったプレゼントの金額はわからないので、もらった個数に対してお返しの個数を変えることにします。
・義務チョコの場合はもらった個数と同じ数
・義理チョコの場合はもらった個数の2倍の数
・本命チョコの場合はもらった個数の3倍の数
※もらった時点で「義務チョコ」か「義理チョコ」か「本命チョコ」かはわかるものとします。
バレンタインには合計 m 個のプレゼントをもらいました。
お返しに用意した個数が n 個のとき、もらったプレゼントの種類について、義務チョコ・義理チョコ・本命チョコの個数の組み合わせを考えます。
例えば、m = 5, n = 10 のとき、以下の3パターンがあります。
パターン 義務チョコ 義理チョコ 本命チョコ
(1) 0個 5個 0個
(2) 1個 3個 1個
(3) 2個 1個 2個
標準入力から m, n が与えられるとき、上記の組み合わせの数を標準出力に出力してください。
(m, n は m < n を満たす整数とし、n は最大で1,000,000とします)
【入出力サンプル】
標準入力
5 10
標準出力
3
---------------------------------
下図のように,m がある値をとるとき,n は m ≦ n ≦ 3m である。m = 13 のとき,水色で示した数列には規則性があるので,それをそのままコーディング
f = function(m, n) {
a = 0
if (n >= m && 2*m >= n) {
a = floor((n-m)/2)+1
} else if (n > 2*m && 3*m >= n) {
a = floor((3*m-n)/2)+1
}
cat(a)
}
mn = scan(file("stdin", "r"))
f(mn[1], mn[2])
この問題は,なかなか面白い
・義務チョコの場合はもらった個数の m1 倍の数
・義理チョコの場合はもらった個数の m2 倍の数
・本命チョコの場合はもらった個数の m3 倍の数
などとして,m1, m2, m3 をいろいろ変えると,ちょっと変態チックに面白い