No.262

が大きいので愚直にやると間に合わない.

そこで上位20ビットと下位20ビットに分けて考える.

上位20ビットの中に含まれるビット数と下位20ビットのスタート位置から, 下位20ビットの最後まで進んで上位ビットが繰り上がったときの歩数と次の下位20ビットのスタート位置をあらかじめ計算しておく. 計算は後ろから DP で計算すればいい.

この計算結果をもとに, 上位20ビットを1ずつふやしていく.