概要

「おい,ただの『面倒』じゃねぇか」と思ったそこのあなた!
ご,ごめんなさい...

問題原案:uni_kakurenbo

解説

与えられている式をよく見ると, Ak(1kN)A_k \scriptsize \; (1 \leq k \leq N) が影響を与えるのは B2k1,B2kB_{2k - 1}, B_{2k}22 箇所のみであることが分かります.
さらに,B2k1,B2kB_{2k - 1}, B_{2k} はそれぞれ,AkA_k の (22 進数における) 下 88 桁,上 88 桁 にそれぞれ一致します.

これは,任意の非負整数 x,kx, k に対して,xx のビット幅を nn としたとき,xx の 下 kk 桁,上 (nk)(n-k) 桁はそれぞれ, xmod2k,x2k\displaystyle x \bmod 2^k, \left \lfloor \frac{x}{2^k} \right \rfloor に等しいことを利用すると簡単に求められます.

実装に際してはビット演算を用いてもよいですし,Python ならば bin 関数を利用したり,言語に依らずライブラリを持っている人はそれを貼り付けてもよいでしょう.

おまけ

C++ には reinterpret_cast というものがあり,これを利用することで簡単に実装できます.

解説:uni_kakurenbo

実装例

C++
C++
Python