☆8日本語につき問題文は略。arc068.contest.atcoder.jp比較的理解が容易*1な解法を紹介する。書かれたカードをこの順に、それぞれデックの先頭あるいは末尾に挿入します。これで生成される数列はどんな性質を満たすか考えよう。順番に左or右に入れるので、単調減少する列と単調増加する列が組み合わさった形になる。食べたカードに書かれていた数を食べた順番に並べて数列を作ることにします。最終的にできる数列が満たすべき条件を考えよう。並べなければならない。隣まで取りきる必要があると分かる。左の数をすべて取りきった、とする。このとき、先頭からk-1個の数列は、以下の条件を満たすことが分かる。以下、端折られている部分を解説する。無視した簡単なバージョンの問題を解こう。1〜Nの順列の中で、高々2つの減少列に分割できるもの(以降、このような数列を「よい数列」と呼ぶ。)は何通りあるだろうか。以下の操作を幾つか繰り返してよい数列を作ろう。