System - XOR hash

2 secs 1024 MB
sutonchoko's icon sutonchoko

問題文

あるプログラミングサークルのメンバーが、整数の数列を基にしたXORハッシュ関数を考案しました。このハッシュ関数は、数列内の全要素に対して 排他的論理和 (XOR) を計算し、その結果をハッシュ値として使用します。しかし、このハッシュ関数で異なる数列が同じハッシュ値を持つ衝突の可能性があるかどうか考えてみました。

そこで、次の条件を満たす数列のペア (AA, BB) の存在を確認し、XORをハッシュ関数として利用する場合の衝突の可能性を調べてください。

1.数列 AABB はともに長さ NN の非負整数列である。

2.数列 AABB の各要素の総和がそれぞれ SS である。

3.数列 AABB の要素をすべて XOR した結果が同一になるような組み合わせの数を探してください。

この条件を満たす (AA, BB) の組み合わせが存在する場合、XORハッシュ関数が衝突を引き起こす可能性があると言えます。

制約

  • 1N1001 \leq N \leq 100
  • 0S1000 \leq S \leq 100

入力

入力は次の形式で標準入力から与えられます。

NNSS

出力

条件を満たす数列の組み合わせの数を、109+710^9+7 で割った余りで出力してください。

提出


Go (1.21)