290.1

1100

結局、木を定義してやるだけで良さそうなので、木を定義。後は、部分木について購入個数の可能な値を求めてマージしていく。ビットカウントを利用すればうまくいく。


木の作り方は、ビット的に完全に内包する値のうち最大のものが親になるようにすれば良い。そのままだと森になるけれど、初期状態0をルートとして追加すると木になる。