2的幂次
题号:NC21544
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

牛牛喜欢2的幂次,于是他在自己的书包里塞了很多写着2的幂次的卡片
可能多张卡片会写着同一个数字
牛牛喜欢那些能用一张或者多张卡片的和所表示的数字
比如书包里有四张卡片2,4,4,64
那么牛牛就会喜欢10,因为10=2+4+4
也喜欢0
但是不会喜欢12,因为12=4+4+2+2,可怜的牛牛只有一张2
现在牛牛想知道他一共会喜欢多少个数。

输入描述:

第一行输入一个整数n (1 ≤ n  ≤ 50),表示卡片的数量
第二行输入n个数,表示每张卡片的数字
每个数字在[1, 2^50]之间

输出描述:

输出一个整数
示例1

输入

复制
2
1 2

输出

复制
4
示例2

输入

复制
4
1 1 1 1

输出

复制
5
示例3

输入

复制
7
1 2 2 2 4 4 16

输出

复制
32
示例4

输入

复制
5
1 32 1 16 32

输出

复制
18

备注:

子任务1:n <= 10
子任务2: n <= 20
子任务3: n <= 50