Feladat: S.9 Korcsoport: - Nehézségi fok: -
Füzet: 2005/május, 292. 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.

Manapság bárki letölthet különböző DNS mintákat az internetről. Egy-egy ilyen leírás leegyszerűsítve a bázisok rövidítéseinek felsorolásából áll, tehát az ,,a'' ,,c'' ,,g'' és ,,t'' betűkből. Feladatunk most egy ilyen leírásban (amiben tehát csak az a, c, g, t betűk szerepelnek) keresni egy sorozatot (pl. egy gént). A leírást és a keresendő mintát egy-egy szövegfájlban adjuk meg. Mindkét fájl első sorában a betűk száma áll, ezután következik az a, c, g, t betűkből álló sorozat, amit az olvashatóság kedvéért legfeljebb 100 hosszúságú sorokra tördelünk.
A program a parancssorban kapja meg a szükséges fájlneveket; előbb a leírást, másodszor pedig a mintát tartalmazó fájl nevét. A program outputja a standard kimenetre: 0, ha a keresett minta nem szerepel, és i, ha a keresett minta első előfordulása az i-edik pozíción kezdődik. (A pozíciók számozását 1-től kezdjük.)
A leírásról feltehetjük, hogy maximum 50 millió, a keresett minta pedig maximum 1 millió betűből áll. Tesztadatok a

http://www.komal.hu/verseny/2005-05/S.h.shtml
oldalon találhatók.
Példa:
leiras.txtminta.txtA program futtatása  505> keres leiras.txt minta.txtagcgtagcatcgatccgataatcgc45   cgatggtgcacacggcatac>gtacatcgct