atcoder#ABC283H. [ABC283Ex] Popcount Sum

[ABC283Ex] Popcount Sum

配点 : 600600

問題文

11 以上 NN 以下の整数であって、MM で割った余りが RR になるものすべてに対する popcount の総和を求めてください。 ただし、正整数 XX に対して XX の popcount とは XX を二進表記したときの 11 の個数、すなわち 2k2^k の位が 11 となる非負整数 kk の個数のことです。 11 つの入力につき、 TT 個のテストケースに答えてください。

制約

  • 1T1051 \leq T \leq 10^5
  • 1MN1091 \leq M \leq N \leq 10^9
  • 0R<M0 \leq R < M
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。入力の 11 行目は以下の通りである。

TT

そして、TT 個のテストケースが続く。これらはそれぞれ以下の形式で与えられる。

NN MM RR

出力

TT 行出力せよ。ii 行目には ii 番目のテストケースに対する答えを出力せよ。

2
12 5 1
6 1 0
6
9

11 つ目のテストケースでは、11 の popcount が 1166 の popcount が 221111 の popcount が 33 であるため 1+2+31+2+3 の計算結果である 66 を出力します。 22 つ目のテストケースでは、11 の popcount が 1122 の popcount が 1133 の popcount が 2244 の popcount が 1155 の popcount が 2266 の popcount が 22 であるため 1+1+2+1+2+21+1+2+1+2+2 の計算結果である 99 を出力します。