概要
考察に詰まったら,手を動かして実験してみましょう.
問題原案:uni_kakurenbo
解説
P≤Q としても一般性は保たれますから,以下は P≤Q とします.
xmodP<P≤Q より (xmodP)modQ=xmodP ですから,条件 xmodP=(xmodQ)modP を満たす K 未満の非負整数 x の個数を求めればよいです.
非負整数 k に対して kQ≤x<(k+1)Q の場合を考えます.(これですべての場合を網羅できます.)
xmodQ=x−kQ より, kQmodP=0 すなわち kQ が P の倍数であることが必要十分です.
これは k が gcd{P,Q}P の倍数であると言い換えることができます.
以上より,周期 Qgcd{P,Q}P=lcm{P,Q} ごとに,幅 Q の区間で条件を満たす x が現れるとわかりました.
したがって答えは Q⌊lcm{P,Q}K⌋+min{Q,Kmodlcm{P,Q}} です.
解説:uni_kakurenbo
実装例