Feladat: I/S.16 Korcsoport: - Nehézségi fok: -
Füzet: 2017/március, 167. oldal  PDF  |  MathML 
Témakör(ök): Nehezebb feladat, Programozás, algoritmusok

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Zénó szereti a betűrejtvényeket és mániákusan gyűjti az értelmes és értelmetlen szavakat. Egy-egy táblázat soraiban gyűjti az azonos hosszúságú karaktersorozatokat, amelyek valahol valamilyen rejtvényben már felbukkantak, minden cellába egy-egy betűt írva. A táblázatra igaz, hogy az egy-egy oszlopban levő karakterekből álló szavak különbözőek.
Miki, a barátja meg akarja tréfálni Zénót. A táblázat tetejéről a lehető legtöbb sort akarja törölni úgy, hogy Zénó ne vegye észre, azaz a ,,nincs két azonos oszlop'' szabály igaz maradjon. Segíts Mikinek programot írni, amely meghatározza, hány sort töröljön.
A standard bemenet első sora a táblázat sorainak és oszlopainak a számát S, O (1S,O1000) tartalmazza. A következő S sor O darab kisbetűs, az angol ábécé karaktereiből álló szót tartalmaz, Zénó táblázatának szavait, a leírt sorrendben. A táblázatra igaz, hogy nincs benne két azonos oszlop.
A standard kimenet egyetlen sorába írjuk azt a legnagyobb számot, ahány sort Miki törölhet a táblázat elejéről úgy, hogy bármely két oszlop különböző maradjon.
Példák:

 
Bemenet 1  Kimenet 1  Bemenet 2  Kimenet 2  Bemenet 3  Kimenet 3  2 603 424 61inputsalfamonikaalapokbetamonikazetamaricakatoka

 

Időlimit: 1 mp, memórialimit: 256 MB.
Figyelem! A bemenet mérete nagy, így a főprogram nem futhat egy egész másodpercig.
Pontozás és korlátok: a programhoz mellékelt, a helyes megoldás elvét tömören, de érthetően leíró dokumentáció 1 pontot ér. A programra akkor kapható meg a további 9 pont, ha bármilyen hibátlan bemenetet képes megoldani a fenti korlátoknak megfelelően.
Beküldendő egy tömörített is16.zip állományban a program forráskódja és rövid dokumentációja, amely megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.