2 台のプリンター A, B がある。各プリンターには 枚の数字が書かれたカードが入っており、それぞれのプリンターの中では から までの数字がちょうど 1 回ずつ現れる。
プリンター A のカードを前から順に 、プリンター B のカードを前から順に とする。
すべてのカードを印刷するために、ちょうど 回の操作を行う。1 回の操作では、カードが残っているプリンターを 1 台選び、そのプリンターの先頭のカードを印刷して取り除く。
最初の操作では切り替えは発生しない。2 回目以降の操作で、直前の操作と異なるプリンターを使うたびに切り替え回数が 増える。
すべての操作が終わると、印刷された 個の数字を順に並べた出力列を得る。同じ出力列が複数の異なる操作方法から得られることもある。
切り替え回数が 以下の操作方法で作ることのできる、異なる出力列の個数を求めよ。同じ出力列を作る操作方法が複数ある場合、そのうち 1 つでも切り替え回数が 以下なら、その出力列を 1 回だけ数える。
答えを で割った余りを出力せよ。
入力は次の形式で与えられる。
条件を満たす異なる出力列の個数を で割った余りを出力せよ。
すべてのカードを出力するには両方のプリンターを使う必要があるため、少なくとも 1 回の切り替えが必要である。 なので、条件を満たす出力列は存在しない。
A の後に B、または B の後に A を使うと、切り替えは 1 回である。どちらも出力列は なので、1 回だけ数える。
可能な出力列は 、、、 の 4 通りである。それぞれ AABB、ABBA、BAAB、BBAA の順にプリンターを使うことで得られ、切り替え回数は順に である。
同じ出力列を作る別の方法の切り替え回数が を超えていても、条件を満たす方法が 1 つでもあれば、その出力列を 1 回数える。