CF272B.Dima and Sequence

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Dima got into number sequences. Now he's got sequence a1,a2,...,ana_{1},a_{2},...,a_{n} , consisting of nn positive integers. Also, Dima has got a function f(x)f(x) , which can be defined with the following recurrence:

  • f(0)=0f(0)=0 ;
  • f(2x)=f(x)f(2·x)=f(x) ;
  • f(2x+1)=f(x)+1f(2·x+1)=f(x)+1 .

Dima wonders, how many pairs of indexes (i,j)(i,j) (1<=i<j<=n) are there, such that f(ai)=f(aj)f(a_{i})=f(a_{j}) . Help him, count the number of such pairs.

输入格式

The first line contains integer nn (1<=n<=105)(1<=n<=10^{5}) . The second line contains nn positive integers a1,a2,...,ana_{1},a_{2},...,a_{n} (1<=ai<=109)(1<=a_{i}<=10^{9}) .

The numbers in the lines are separated by single spaces.

输出格式

In a single line print the answer to the problem.

Please, don't use the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specifier.

输入输出样例

  • 输入#1

    3
    1 2 4
    

    输出#1

    3
    
  • 输入#2

    3
    5 3 1
    

    输出#2

    1
    

说明/提示

In the first sample any pair (i,j)(i,j) will do, so the answer is 33 .

In the second sample only pair (1,2)(1,2) will do.

首页