Fişierul intrare/ieşire: | liste.in, liste.out | Sursă | Lot Sibiu 2011 - Baraj 2 Juniori |
Autor | Marius Nicoli | Adăugată de | Andrei Constantinescu •Andrei1998 |
Timp execuţie pe test | 0.25 sec | Limită de memorie | 65536 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Liste
Numim listă un şir de numere naturale. Avem la dispoziţie mai multe liste aşezate, în ordine, una sub alta. Spunem că două liste şi sunt vecine dacă este imediat deasupra lui , sau dacă este imediat deasupra lui . Oricare două liste vecine şi pot fi unificate dacă ele au cel puţin un element comun. Prin unificare, noua listă va avea ca elemente toate elementele din la care se adaugă toate elementele din . Listele şi vor dispărea şi în locul lor va apărea noua listă.
Cerinţă
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 L reprezentând numărul de liste.
Fiecare dintre următoarele L linii descriu, în ordine, câte o listă şi au structura: . Primul element notat K reprezintă numărul de elemente din listă. În continuare sunt K 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
- 1 ≤ L ≤ 100.000;
- Fiecare listă iniţială are cel mult 10 de elemente;
- Valorile elementelor listelor sunt numere naturale ≤ 120
Exemplu
liste.in | liste.out |
---|---|
4 2 0 1 1 0 3 1 3 3 1 2 | 2 |
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 | 3 |