Problem:
Suppose you have an integer v. In one operation, you can:
- either set v=(v+1)mod32768
- or set v=(2⋅v)mod32768.
You are given n integers a1,a2,…,an. What is the minimum number of operations you need to make each ai equal to 0?
Input Format:
The first line contains the single integer n (1≤n≤32768) — the number of integers.
The second line contains n integers a1,a2,…,an (0≤ai<32768).
Output Format:
Print n integers. The i-th integer should be equal to the minimum number of operations required to make ai equal to 0.
Note:
Let's consider each ai:
- a1=19. You can, firstly, increase it by one to get 20 and then multiply it by two 13 times. You'll get 0 in 1+13=14 steps.
- a2=32764. You can increase it by one 4 times: 32764→32765→32766→32767→0.
- a3=10240. You can multiply it by two 4 times: 10240→20480→8192→16384→0.
- a4=49. You can multiply it by two 15 times.