Official

A - B = C Editorial by nuip


まず、整数 \(C\) について、\(A-B=C\) を満たす \(L\) 以上 \(R\) 以下の整数 \(A,B\) の組がいくつあるかを考えます。 \(C\gt R-L\) であるときは一つもありません。そうでないときは、\((B,A)=(L,L+C),\dots, (R-C,R)\)\(R-C-L+1\) 通りです。

よって、これを\(C=L,L+1,\dots,R\) の場合について足し上げれば良いです。この和は \(C\le R-L\) となるような範囲を求めたあとで、等差数列の和の公式を使うことで \(O(1)\) で求めることができます。

C++による実装例

Pythonによる実装例

posted:
last update: