ABC081-B - Shift only を解く
ABC081-B - Shift only
複数の整数があり、その整数が全て偶数のとき
2で割ったものに置き換えることができる
この操作を最大何回できるか? という問題
そのままシミュレーションしていきたいところだが
整数の制約が 1 <= An <= 10^9 とかなり大きい
とはいえ整数の個数は最大で 200 と少ないので、何とか間に合うだろう
以上を踏まえて書いたコードを以下に示す
提出したコード
# 入力 N=int(input()) l=list(map(int,input().split())) # カウンタ c=0 # ループ脱出フラグ f=False while True: # 各整数を割る for i in range(len(l)): if l[i]%2==0: l[i]//=2 else: # 割り切れない数があった場合はフラグを立てる f=True break # カウンタを加算 c+=1 # フラグが立ったらループ終了 # カウンタを一回多く加算しているので減らす if f: c-=1 break # 出力 print(c)
提出結果はACでした