AtCoder Regular Contest 148 A問題 mod M
問題
提出解答
問題の概要
長さ の非負整数列 が与えられる. 次のようにして長さ の非負整数列 を作成する.
をうまく選び, に出てくる整数の種類の数の最小値を求めよ.
制約
解法
まず, とすると の各項が or になり, 種類の数が高々 になる. よって, 正解は 以下であることがわかった.
よって, の各項が全て等しくなるような が存在するかどうかを判定する.
の各項が全て等しいときは任意の 以上の整数で の各項が等しくなる.
以降は に現れる整数の種類の数は 以上とする.
以下が成立する.
整数 と正の整数 に対して, 以下は同値である.
- を で割った余りと を で割った余りは等しい
- は の約数である.
よって, 上のことを利用することにより, 次のように変形できる.
- となる 以上の整数 が存在する.
- 以下を満たすような 以上の整数 が存在する.
- 任意の に対して, は の約数である.
このとき, 「 に現れる整数の種類の数は 以上」という仮定から, となる が存在する. よって,
とすると, である.
この によって, 以下は同値になる.
- 以下を満たすような 以上の整数 が存在する.
- 任意の に対して, は の約数である.
そして, の各項が全て等しいとき, その時に限り である.
これらによって, 解答は
- ならば ( のときは のとき, のときは任意の 以上の整数 )
- ならば ( のとき)
である.