Full House

Time limit: 0.1s Memory limit: 64MB Input: full-house.in Output: full-house.out

"T-ul nu se pronunță." - Un olimpic internațional

Cerință

Patru cuvinte pot forma un pătrat astfel încât două dintre ele ocupă laturile de sus și de jos, iar celălalte două ocupă laturile din stânga și dreaptă. Cuvintele de pe orizontală se citesc de la stânga la dreapta, iar cuvintele de pe verticală se citesc de sus în jos. Observați cum în colțuri, câte două cuvinte împărtășesc aceeași literă. În imaginea alăturată este ilustrată o posibilă împreunare a cuvintelor: INFO, ANNA, IARĂ și OCNA:

Dată o listă de cuvinte cu lungimi egale, sarcina dumneavoastră este să numărați câte pătrate diferite puteți forma. Nu puteți folosi același cuvânt de mai multe ori în formarea unui pătrat. Două pătrate sunt diferite dacă diferă în cel puțin un caracter.

Date de intrare

Pe prima linie a fișierului de intrare full-house.în se află NN, numărul de cuvinte date.
Pe următoarele NN linii se află cuvintele în litere uppercase latinești. Cuvintele sunt distincte două câte două și sunt de aceeași lungime.

Date de ieșire

Pe prima linie a fișierului de ieșire full-house.out se va găsi răspunsul cerut în enunțul problemei.

Restricții și precizări

  • N105N \le 10^5
  • Cuvintele date sunt distincte două câte două și au aceeași lungime
  • Lungimea maximă a unui cuvânt este de 1010 caractere
  • Vă garantăm că în testele noastre, răspunsul încape pe tipul de date integer cu 64 de biți (long long in C/C++).
  • Pentru 3030 puncte, N100N \le 100

Exemplul 1

full-house.in

4
NIVA
HLAD
HSIN
DEDA

full-house.out

2

Exemplul 2

full-house.in

6
BAKA
BARA
BALC
CALC
ARHC
BLIC

full-house.out

8

Log in or sign up to be able to send submissions!