「おい,ただの『面倒』じゃねぇか」と思ったそこのあなた!
ご,ごめんなさい...
問題原案:uni_kakurenbo
与えられている式をよく見ると,
が影響を与えるのは の 箇所のみであることが分かります.
さらに, はそれぞれ, の ( 進数における) 下 桁,上 桁 にそれぞれ一致します.
これは,任意の非負整数 に対して, のビット幅を としたとき, の 下 桁,上 桁はそれぞれ, に等しいことを利用すると簡単に求められます.
実装に際してはビット演算を用いてもよいですし,Python ならば bin
関数を利用したり,言語に依らずライブラリを持っている人はそれを貼り付けてもよいでしょう.
C++ には reinterpret_cast
というものがあり,これを利用することで簡単に実装できます.
解説:uni_kakurenbo