仮にを尋ねることが可能だとすると、による総和とによる総和の差はの中で第ビットがであるものの総数-第ビットがであるものの総数に等しい。これを利用すると各桁の立っているビットの数がわかるので、偶数ならXORを0、奇数なら1とすればよい。
実際にはという制約があるが、代わりに全ビットを反転したもの(=とXORを取ったもの)をとすれば同じことができる。
また、素朴にやるとを全部尋ねる必要があってクエリの回数が21回になってしまう。を調べての場合の生の総和と比較することで、は省略できて20回になる。
だから、11ビットくらいで区切れば2つの質問を1つのクエリでできそうと思ったが、分離がかなり複雑になりそうなので方針を変えた。