ビット毎に考えます。考慮すべきビットの数を KK とします。 最大の項が 2602^{60} 未満なので K60K \leq 60です。

以下の 44 つは同値です。

  • 答えの 2k2^k の位が 11 になる
  • (a>>k)&1,((a+b)>>k)&1,...((a+(n1)b)>>k)&1(a \gt\gt k) \& 1, ((a + b) \gt\gt k) \& 1, ... ((a + (n-1)b) \gt\gt k) \& 1 のうち 11 が奇数個ある
  • (a>>k),((a+b)>>k),...((a+(n1)b)>>k)(a \gt\gt k), ((a + b) \gt\gt k), ... ((a + (n-1)b) \gt\gt k) のうち奇数が奇数個ある
  • (a>>k)+((a+b)>>k)+...((a+(n1)b)>>k)(a \gt\gt k) +((a + b) \gt\gt k) + ... ((a + (n-1)b) \gt\gt k) が奇数

一番下の式はAtCoder Libraryにあるfloor_sum(公式ドキュメント https://atcoder.github.io/ac-library/document_ja/math.html )を使うと1回あたり O(min(k,log2b))O(min(k, log_2b)) で求められます。

k=0,1,...K1k = 0, 1, ...K-1 について計算するとクエリあたり O(K2)O(K^2) で答えられます。