Олимпиадный тренинг

Задача . E. Двухбуквенные строки


Даны \(n\) строк, каждая имеет длину \(2\) и состоит из строчных латинских букв от 'a' до 'k'. Выведите количество пар индексов \((i, j)\) таких, что \(i < j\) и \(i\)-я строка с \(j\)-й строкой различаются ровно в одной позиции.

Другими словами найдите количество пар \((i, j)\) (\(i < j\)) таких, что \(i\)-я строка с \(j\)-й строкой различаются ровно в одной позиции \(p\) (\(1 \leq p \leq 2\)), то есть \({s_{i}}_{p} \neq {s_{j}}_{p}\).

Ответ может не влезать в 32-разрядный целочисленный тип, поэтому вам следует использовать 64-разрядные целые числа, такие как long long в C++, чтобы избежать переполнения целочисленного типа.

Входные данные

Первая строка входных данных содержит целое число \(t\) (\(1 \le t \le 100\)) — количество наборов входных данных.

Далее идут описания наборов входных данных.

Первая строка каждого набора содержит одно целое число \(n\) (\(1 \le n \le 10^5\)) — количество строк.

Далее следуют \(n\) строк, \(i\)-я из которых содержит единственную строку \(s_i\) длины \(2\), состоящую из строчных латинских букв от 'a' до 'k'.

Гарантируется что сумма \(n\) по всем наборам не превосходит \(10^5\).

Выходные данные

Для каждого набора выведите единственное число — количество пар \((i, j)\) (\(i < j\)) таких, что \(i\)-я строка с \(j\)-й строкой различаются ровно в одной позиции \(p\) (\(1 \leq p \leq 2\)), то есть \({s_{i}}_{p} \neq {s_{j}}_{p}\).

Пожалуйста, обратите внимание, что ответ для некоторых тестовых примеров не будет помещаться в 32-разрядный целочисленный тип, поэтому вы должны использовать по крайней мере 64-разрядный целочисленный тип в вашем языке программирования (например, long long для C++).

Примечание

В первом примере ровно в одной позиции различаются следующие пары: («ab», «cb»), («ab», «db»), («ab», «aa»), («cb», «db») and («cb», «cc»).

Во втором примере ровно в одной позиции различаются следующие пары: («aa», «ac»), («aa», «ca»), («cc», «ac»), («cc», «ca»), («ac», «aa») and («ca», «aa»).

В третьем примере нет пар, удовлетворяющих условиям.


Примеры
Входные данныеВыходные данные
1 4
6
ab
cb
db
aa
cc
ef
7
aa
bb
cc
ac
ca
bb
aa
4
kk
kk
ab
ab
5
jf
jf
jk
jk
jk
5
6
0
6

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя