CF1661B.Getting Zero
普及-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
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?
假设你有一个整数 v。在一次操作中,你可以执行以下两种操作之一:
- 将 v 设为 (v+1)mod32768;
- 或将 v 设为 (2⋅v)mod32768。
现给你 n 个整数 a1,a2,…,an。将每个 ai 变为 0 所需的最少操作次数是多少?
输入格式
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).
第一行包含一个整数 n(1≤n≤32768)—— 表示整数的个数。
第二行包含 n 个整数 a1,a2,…,an(0≤ai<32768)。
输出格式
Print n integers. The i-th integer should be equal to the minimum number of operations required to make ai equal to 0.
输出 n 个整数。其中第 i 个整数应等于将 ai 变为 0 所需的最少操作次数。
输入输出样例
输入#1
4 19 32764 10240 49
输出#1
14 4 4 15
说明/提示
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.
我们来分别考虑每个 ai:
- a1=19。你可以首先将其加 1 得到 20,然后连续乘以 2 共 13 次,最终得到 0,共需 1+13=14 步。
- a2=32764。你可以连续加 1 共 4 次:32764→32765→32766→32767→0。
- a3=10240。你可以连续乘以 2 共 4 次:10240→20480→8192→16384→0。
- a4=49。你可以连续乘以 2 共 15 次。
输入解题思路,AI测评打分。不知道怎么写?