Official

B - Sum is Multiple Editorial by maroonrk


何らかの正整数 \(a\) に対し,\(1+2+\ldots+k=aN\) が成り立てばよいです. 式を整理し,\(k(k+1)=2aN\) とします.

上の式が成り立つ時,ある整数 \(x\) が存在して,以下の条件がすべて成り立ちます.

  • \(x\)\(2N\) の約数
  • \(x\)\(k\) の約数
  • \(2N/x\)\(k+1\) の約数

この \(x\) を固定してみます. \(y=2N/x\) とおきます. すると問題は,\(k=0 \bmod x\), \(k=-1 \bmod y\) を満たす最小の正整数 \(k\) を求めることに帰着されます. これは,CRTで解くことができます.

最後に,\(x\) の候補として,\(2N\) の約数をすべて試せばよいです. 約数列挙を行うのに \(O(\sqrt N)\) 時間かかり,また,各約数について \(O(logN)\) 時間の計算量がかかります. 今回の制約では,約数の個数は最大でも \(30720\) 個なので,これで間に合います.

posted:
last update: