12126. Реверс


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Є \(N\) паличок з кількома кульками. На кожній кульці написана мала англійська літера. Для кожної \(i=1,2,…,N\) літери, написані на кульках, прикріплених до \(i\)-ої палички, представлені рядком \(S_i\) ​. Зокрема, кількість кульок, які застрягли на \(i\)-й паличці, дорівнює довжині \(∣S_i ​ ∣\) рядка \(S_i\) ​, а \(S_i\) ​ це послідовність літер на кульках, починаючи з одного кінця палички.

Дві палички вважаються однаковими, якщо послідовність літер на кульках, починаючи з одного кінця однієї палички, дорівнює послідовності літер, починаючи з одного кінця іншої палички.

Більш формально, для цілих чисел \(i\) та \(j\) від 1 до N включно, \(i\)-та та \(j\)-та палички вважаються однаковими тоді і тільки тоді, коли \(S_i\) ​ дорівнює \(S_j\) ​ або його оберненому(реверсу).

Виведіть кількість різних серед \(N\) паличок.

Обмеження

  • \(N\) є цілим числом.
  • \(2≤N≤2×10^5\)
  • \(S_i\) ​ — це рядок, що складається з малих англійських літер.
  • \(∣S_i ​ ∣≥1\)
  • \(\sum_{i = 1}^N |S_i| \leq 2 \times 10^5\)

Формат вхідних даних

Перший рядок містить ціле число \(N\).

Наступні  \(N\) рядків містять \(S_i\).

Формат вихідних даних

У вихідний потік виведіть відповідь.

Приклад вхідних даних

6
a
abc
de
cba
de
abc

Приклад вихідних даних

3
  • \(S_2\) ​ = abc дорівнює реверсу \(S_4\) ​ = cba, тому друга та четверта палички вважаються однаковими.
  • \(S_2\) ​ = abc дорівнює \(S_6\) ​ = abc, тому друга та шоста палички вважаються однаковими.
  • \(S_3\) ​ = de дорівнює \(S_5\) ​ = de, тому третя і п'ята палички вважаються однаковими.

Отже, серед шести є три різні палички: перша, друга (те саме, що четверта і шоста) і третя (те саме, що п’ята).


Коментарі

Ще немає коментарів.