A - Weak Beats Editorial
by
Kiri8128
ビット演算による実装
コンピュータでは整数は \(2\) 進法で管理されています。入力を \(2\) 進法の整数だと考えると、問題文の条件は、上から偶数桁目(下から奇数桁目)がすべて \(0\) であることです。
下から奇数桁目のみを取り出したものは、\(2\) 進法の \(0101010101010101\) (\(10\) 進法では \(21845\) )と bitwise AND を取れば良いです。この結果が \(0\) であれば答えは Yes
、そうでなければ No
です。
例えば Python では \(2\) 進法で受け取るのは int(input(), 2)
と書けるので、次のようなコードで AC を得ることができます。
print("No" if int(input(), 2) & 21845 else "Yes")
AC コード(PyPy3)
posted:
last update: