liste

Time limit: 0.1s Memory limit: 64MB Input: liste.in Output: liste.out

Numim listă un sir de numere naturale. Avem la dispoziţie mai multe liste aşezate, în ordine, una sub alta. Spunem că două liste L1L_1 şi L2L_2 sunt vecine dacă L1L_1 este imediat deasupra lui L2L_2, sau dacă L2L_2 este imediat deasupra lui L1L_1. Oricare două liste vecine L1L_1 şi L2L_2 pot fi unificate dacă ele au cel puţin un element comun. Prin unificare, noua listă va avea ca elemente toate elementele din L1L_1 la care se adaugă toate elementele din L2L_2. Listele L1L_1 şi L2L_2 vor dispărea şi în locul lor va apărea noua listă.

Cerința

Determinaţi numărul minim de liste care rezultă după aplicarea unui număr suficient de unificări astfel încât să nu mai existe două liste vecine care să poată fi unificate.

Date de intrare

Fişierul liste.in are pe prima linie un număr natural LL reprezentând numărul de liste. Fiecare dintre următoarele LL linii descriu, în ordine, câte o listă şi au structura: KK, A1A_1, A2A_2, \dots, AKA_K. Primul element notat KK reprezintă numărul de elemente din listă. În continuare sunt KK numere naturale care reprezintă elementele listei. Numerele de pe aceeaşi linie sunt separate prin câte un spaţiu.

Date de ieșire

Pe prima linie a fişierului liste.out se găseşte un singur număr natural reprezentând valoarea cerută.

Restricții și precizări

  • 1L100 0001 \leq L \leq 100 \ 000
  • fiecare listă iniţială are cel mult 1010 de elemente;
  • valorile elementelor listelor sunt numere naturale 120\leq 120

Exemplul 1

liste.in

4
2 0 1
1 0
3 1 3 3
1 2

liste.out

2

Explicație

Avem patru liste. Putem unifica prima și a doua listă, acestea fiind înlocuite cu o singură lista. Apoi putem unifica lista rezultată la primul pas cu lista care iniţial era a treia. Obţinem astfel două liste care nu mai pot fi unificate.

Exemplul 2

liste.in

7
3 1 11 111 
3 2 22 112
3 2 11 113
3 1 22 6
3 5 55 9
3 7 77 9
3 8 88 6

liste.out

3

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