No.1741 Arrays and XOR Procedure
タグ : / 解いたユーザー数 104
作問者 :


問題文
Shirotsume は長さ の数列 を持っています。数列 の値は全て または です。
数列 に対して、以下の操作を考えます。
操作:操作を行う前の数列 の長さを とする。数列 を数列 に置き換える。
ただし、 は と の排他的論理和(XOR)を表します。
操作を 度行うと、数列は長さが 短くなります。数列 に操作を 回繰り返し適用すると、 は長さ の数列 または になります。
Shirotsume は長さが である数列 を一部隠して、長さ の数列 としてあなたに教えます。
数列 は の値のみからなり、 について、 または ならば 、 なら の値が隠されていることを表します。
の要素のうち隠されている要素の個数を とすると、 としてありえる数列は 通りありますが、そのうち操作を 回行った後 になるものは何通りありますか? で割ったあまりを求めてください。
制約
- 入力は全て整数
- の値は のいずれか
入力
入力は以下の形式で標準入力から与えられる。
出力
操作を 回行った結果 になるものの個数を で割ったあまりを出力せよ。
最後に改行すること。
サンプル
サンプル1
入力
3 -1 -1 1
出力
2
隠されている要素 つのそれぞれに を割り当てる方法は全部で 通りあります。そのそれぞれについて操作を行った結果を以下に示します。
サンプル2
入力
5 0 0 1 0 0
出力
0
Shirotsume が隠している要素の個数は であるかもしれません。また、すべての要素を隠しているかもしれません。
サンプル3
入力
7 -1 0 1 0 1 1 -1
出力
2
ここでは示しませんが、答えは非常に大きくなる場合があります。 で割ったあまりを求めてください。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。