#include <iostream>
using namespace std;
const int N=32*1e5+1;
int a[100008],e[N],nex[N][2],nx=2;long long ans=0;
void insert(int x)
{int o=1;
e[o]++;
for(int i=30;i>=0;i--)
{int y=x>>i&1;
if(!nex[o][y])nex[o][y]=nx++;
o=nex[o][y];
e[o]++;
}}
int find(int x)
{int o=1,res=0;
e[o]++;
for(int i=30;i>=0;i--)
{int y=x>>i&1;
if(y==0)res+=e[nex[o][1]];
if(!nex[o][y])break;
o=nex[o][y];
}return res;}
int main()
{int n;cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)
{
ans+=find(a[i]);
insert(a[i]);
}cout<<ans;
return 0;
}