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

Задача . C. Рифма


Скажем, что две строки \(s\) и \(t\) рифмуются, если обе строки имеют длину хотя бы \(k\), и их \(k\) последних букв равны. Например, для \(k = 3\) строки abcd и cebcd рифмуются, строки ab и ab не рифмуются, строки aaaa и aaaaa рифмуются, а строки abcd и abce — нет.

Вам задано \(n\) пар строк \((s_i, t_i)\). Для каждой пары известно, должны ли строки рифмоваться или не должны.

Определите все возможные неотрицательные целые значения \(k\), для которых пары, которые должны рифмоваться, рифмуются, а пары, которые не должны рифмоваться, не рифмуются.

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

Во входных данных заданы несколько наборов входных данных. В первой строке задано одно целое число \(t\) (\(1 \le t \le 1000\)) — количество наборов входных данных. Далее следуют сами наборы входных данных.

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

В следующих \(n\) строках заданы описания пар — по одной паре в строке. В \(i\)-й строке заданы строки \(s_i\) и \(t_i\) и метка \(r_i\) через пробел. Строки непустые, состоят только из строчных букв латинского алфавита и длины строк не превосходят \(2 \cdot 10^5\). Метка \(r_i\) равна \(1\), если строки должны рифмоваться, или \(0\), если они не должны рифмоваться.

Гарантируется, что в каждом наборе входных данных есть хотя бы одна пара с \(r_i\) равным \(1\) и что суммарная длина строк по всем наборам входных данных не превосходит \(4 \cdot 10^5\).

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

Для каждого набора входных данных, сначала выведите целое число \(m\) — количество возможных неотрицательных целых значений \(k\) таких, что пары, которые должны рифмоваться, рифмуются, а пары, которые не должны рифмоваться, не рифмуются. Далее выведите все данные значения \(k\) (без повторений). Вы можете выводить их в любом порядке.

Примечание

В первом наборе входных данных, если \(k\) будет хотя бы \(1\), то kotlin и heroes не будут рифмоваться.

Во втором наборе, для \(k = 2\) join и kotlin рифмуются, и episode и eight не рифмуются.


Примеры
Входные данныеВыходные данные
1 3
1
kotlin heroes 1
2
join kotlin 1
episode eight 0
4
abc abcdef 0
xyz zzz 1
aaa bba 0
c d 0
1
0
2
1 2
0

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

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