/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
System.
out.
println(pairsCount
(arr
)); }
static class Node
{
int value;
Node left, right;
int rc; // right count
int ic; // duplicate count
Node(int value)
{
this.value = value;
}
}
static int pairsCount
(Integer[] arr
) {
int count = 0;
Node root = new Node(arr[0]);
for(int i=1; i<arr.length; i++)
{
count += insert(root, arr[i]);
}
return count;
}
static int insert(Node n, int v)
{
if(v < n.value)
{
if(n.left == null)
{
n.left = new Node(v);
return 1 + n.rc + n.ic;
}
return 1 + n.rc + n.ic + insert(n.left, v);
}
else if(v > n.value)
{
if(n.right == null)
{
n.right = new Node(v);
n.rc = 1;
return 0;
}
n.rc += 1;
return insert(n.right, v);
}
else
{
n.ic += 1;
return n.rc;
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCUludGVnZXJbXSBhcnIgPSB7MSwgNCwgMywgMiwgNX07CgkJU3lzdGVtLm91dC5wcmludGxuKHBhaXJzQ291bnQoYXJyKSk7Cgl9CgkKCXN0YXRpYyBjbGFzcyBOb2RlCgl7CgkJaW50IHZhbHVlOwoJCU5vZGUgbGVmdCwgcmlnaHQ7CgkJaW50IHJjOyAvLyByaWdodCBjb3VudAoJCWludCBpYzsgLy8gZHVwbGljYXRlIGNvdW50CgkJCgkJTm9kZShpbnQgdmFsdWUpCgkJewoJCQl0aGlzLnZhbHVlID0gdmFsdWU7CgkJfQoJfQoJCQoJc3RhdGljIGludCBwYWlyc0NvdW50KEludGVnZXJbXSBhcnIpCgl7CgkJaW50IGNvdW50ID0gMDsKCQlOb2RlIHJvb3QgPSBuZXcgTm9kZShhcnJbMF0pOwoJCWZvcihpbnQgaT0xOyBpPGFyci5sZW5ndGg7IGkrKykKCQl7CgkJCWNvdW50ICs9IGluc2VydChyb290LCBhcnJbaV0pOwoJCX0KCQlyZXR1cm4gY291bnQ7Cgl9CgkKCXN0YXRpYyBpbnQgaW5zZXJ0KE5vZGUgbiwgaW50IHYpCgl7CgkJaWYodiA8IG4udmFsdWUpCgkJewoJCQlpZihuLmxlZnQgPT0gbnVsbCkgCgkJCXsKCQkJCW4ubGVmdCA9IG5ldyBOb2RlKHYpOwoJCQkJcmV0dXJuIDEgKyBuLnJjICsgbi5pYzsKCQkJfQoJCQlyZXR1cm4gMSArIG4ucmMgKyBuLmljICsgaW5zZXJ0KG4ubGVmdCwgdik7CgkJfQoJCWVsc2UgaWYodiA+IG4udmFsdWUpCgkJewoJCQlpZihuLnJpZ2h0ID09IG51bGwpIAoJCQl7CgkJCQluLnJpZ2h0ID0gbmV3IE5vZGUodik7CgkJCQluLnJjID0gMTsKCQkJCXJldHVybiAwOwoJCQl9CgkJCW4ucmMgKz0gMTsKCQkJcmV0dXJuIGluc2VydChuLnJpZ2h0LCB2KTsKCQl9CgkJZWxzZQoJCXsKCQkJbi5pYyArPSAxOwoJCQlyZXR1cm4gbi5yYzsKCQl9Cgl9Cn0=