atcoder#ARC149E. [ARC149E] Sliding Window Sort
[ARC149E] Sliding Window Sort
配点 : 点
問題文
正整数 が与えられます.正整数列 に対する次の操作を考えます.
- の順に次を行う.- $A_{k\bmod N}, A_{(k+1)\bmod N}, \ldots, A_{(k+M-1)\bmod N}$ を昇順にソートする.つまり $A_{k\bmod N}, A_{(k+1)\bmod N}, \ldots, A_{(k+M-1)\bmod N}$ を小さい方から順に並べたものを とするとき,各 に対して を に置き換える.
- $A_{k\bmod N}, A_{(k+1)\bmod N}, \ldots, A_{(k+M-1)\bmod N}$ を昇順にソートする.つまり $A_{k\bmod N}, A_{(k+1)\bmod N}, \ldots, A_{(k+M-1)\bmod N}$ を小さい方から順に並べたものを とするとき,各 に対して を に置き換える.
以上 以下の整数からなる順列 が与えられます.正整数列 であって,上記の操作を行った結果が と一致するものの個数を で割った余りを答えてください.
制約
- ならば
入力
入力は以下の形式で標準入力から与えられます.
出力
正整数列 であって,操作を行った結果が と一致するものの個数を で割った余りを出力してください.
6 3 5
6 4 2 3 1 5
18
例えば が条件を満たします.この に対して,操作は次のように進行します.
- に対する操作により, は になる.
- に対する操作により, は になる.
- に対する操作により, は になる.
- に対する操作により, は になる.
- に対する操作により, は になり, に一致する.
6 3 5
6 5 4 3 2 1
0
条件を満たす は存在しません.
20 20 149
13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12
401576539
以上 以下の整数からなる順列がすべて条件を満たします.