Description:
小明在大学期间没有好好学习,在毕业之后找不到工作,只能去搬砖了(调侃)。实际上,小明在科技发达的今天,他找到了一份电子搬砖的工作。现有n个砖堆,每个砖堆都是2的幂次方。第i(1<=i<=n)个砖堆的砖块数量是2wi。老板要求小明每次搬砖的砖块数是2的幂次方,那么小明最少要搬几次砖,才能搬完呢?例如对于一组砖堆,2 2 4 8 8,分别是21,21,22,23,23,如果按砖堆依次搬,要5次搬完。但小明可以将两个2并成一个4砖堆,又可将这个4砖堆与现有的4砖堆并成一个8砖堆,于是就剩下3个8砖堆了。这三个8砖堆可以1个16砖堆和一个8砖堆搬走,从而两次就可搬完。
Input:
多组数据。每组数据以一个整数n(1≤n≤1000)开始,后跟n个砖堆(用幂次方表示),w1,w2,...,wn(0≤wi≤1000)。
Output:
对于每组数据,输出一行结果,即最少的搬砖次数。
Sample Input:
5
1 1 2 3 3
6
1 3 2 1 3 3
Sample Output:
2
1
Source:
qn