#C07TL09P06. C07T.L09.实战训练九.题目6.真假金币

C07T.L09.实战训练九.题目6.真假金币

题目描述

CC 是个探险家,在金银岛上找到了许多宝藏,其中就有 nn 袋金币,每袋金币数量为 aia_i 。可是后来有坏人把其中几袋换成假币了,经过检查后发现每袋金币要么全是真币(每个重 55 克),要么全是假币(每个重 44 克)。

如果现在只有一台电子秤, nn 袋金币依次排列,你可以从每袋金币中挑出若干枚进行一次称量(也可以一枚都不选),若要确定前 11 , 22 , ... , nn 袋金币的真假,至少要称量几次呢?

输入格式

第一行一个整数 nn ,表示有 nn 袋金币。

接下来一行 nn 个整数 aia_i ,表示每袋金币的数量。

数据范围

对于 10% 的数据,n1n \le 1

对于 30% 的数据,n2n \le 2

对于 60% 的数据,n100n \le 100

对于 80% 的数据,n1000n \le 1000

对于 100% 的数据,n105,ai109n \le 10^5 , a_i \le 10^9

存在 10% 的数据,ai=1a_i = 1

输出格式

nn 行,每行一个整数,第 ii 行表示想要确定前 ii 袋金币的真假至少要称量几次。

样例

3
2 3 4
1
1
1

样例解释

以前三袋硬币为例,分别取出 1 、 2 、 4 枚硬币,则一次称量的结果即可确定三袋的真假。
img