裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

ホワイトデーのお返しの個数

2017年03月14日 | ブログラミング

ホワイトデーのお返しの個数

締め切りが 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 をいろいろ変えると,ちょっと変態チックに面白い

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村