获取零值
题目描述
假设你有一个整数v。在一次操作中,你可以:
- 设置 v=(v+1)mod32768
- 或设置 v=(2⋅v)mod32768。
给你n个整数a1,a2,…,an。你需要进行多少次最少的操作以使每个ai都等于0?
输入格式
第一行包含一个整数n (1≤n≤32768) —— 整数的数量。
第二行包含n个整数a1,a2,…,an (0≤ai<32768)。
输出格式
输出n个整数。第i个整数应等于使ai等于0所需的最小操作次数。
示例 #1
示例输入 #1
4
19 32764 10240 49
示例输出 #1
14 4 4 15
提示
让我们考虑每个ai :
- a1=19。你可以首先将其增加1得到20,然后将它乘以2 13次。你在1+13=14步中得到0。
- a2=32764。你可以增加4次一:32764→32765→32766→32767→0。
- a3=10240。你可以将它乘以2 4次:10240→20480→8192→16384→0。
- a4=49。你可以将它乘以2 15次。