input=<исходный массив N чисел>
countTable = new HashTable
// Проходимся по всем числам и сохраняем их кол-во
for (i = 1...N-1) do:
count = countTable.get(input[i]) // смотрим есть ли уже что по этому числу
if count is empty? then: // Число еще не добавлено в Таблицу
count = 0
count = count + 1
countTable.put(input[i], count) // Сохраняем текущее число с его количеством
// далее проходимся по таблице и по формуле складываем ко-во пар
result = 0
for each key=>value from countTable do:
if (value > 1) then:
result = result + (value - 1) * value / 2
return result // возвращаем искомое количество