Feladat: I/S.15 Korcsoport: - Nehézségi fok: -
Füzet: 2017/február, 102 - 103. 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.

Benedek ásatásokon segédkezik, ahol az egyik nap találtak egy olyan szöveges dokumentumot, amelyben csak A és B betűkből álló, meglehetősen hosszú szavak szerepeltek. Benedek azt a feladatot kapta a főnökétől, hogy a szavak felett ívekkel, kettesével kösse össze az azonos betűpárokat (az A-t az A-val, a B-t a B-vel), majd számolja meg a dokumentumban szereplő ,,szép'' és ,,nagyon szép'' szavakat. ,,Szép''-nek nevezzük azokat a szavakat, amelyekben kialakítható olyan párosítás, amelynél minden egyes betűnek van párja és a rajzolt ívek nem keresztezik egymást. ,,Nagyon szép''-ek azok a szavak, amelyekben a szép kritériumnak megfelelő összekötés egyértelmű, vagyis pontosan egyféle a kereszteződés nélküli megfelelő összeköttetés.
A feladatunk a szövegben előforduló ,,szép'' és ,,nagyon szép'' szavak megszámolása.
A standard bemenet első sora a dokumentumon szereplő szavak N (1N1000) számát, a következő N sor pedig a csupa A és B betűből álló szavakat tartalmazza. Egy-egy szó hossza legalább 1 és legfeljebb 100 000 betű. Az összes szó hosszának összege nem nagyobb, mint 1 000 000. A standard kimenet első sorába a ,,szép'' szavak számát, míg a második sorába a ,,nagyon szép'' szavak számát kell írni.
Pontozás: a programhoz mellékelt, a helyes megoldás elvét tömören, de érthetően leíró dokumentáció 1 pontot ér. További 7 pontot ér a ,,szép'' szavak számának helyes megadása, és további 2 pont a ,,nagyon szép'' szavak helyes megszámlálására jár.

 
Bemenet (a  /  jel a mintában újsor karaktert jelöl)Kimenet  4 / AABBAAA / ABAB / AABB / ABBAAABB2 / 1   3 / AA / AAAAAAAA / BAABAA3 / 2   
 

Magyarázat:
AABBAAA ‐ nem szép és nem nagyon szép, mivel nincs minden betűnek párja;
ABAB ‐ nem szép és nem nagyon szép, a betűk feletti párosítás metszi egymást;
AABB ‐ szép és nagyon szép ‐ az összekötés egyértelmű;
ABBAAABB ‐ szép, de nem nagyon szép, mert az első A-t a 2. és a 4. A-val is lehet kötni, így többféleképpen is létrejöhet az átmetszés nélküli párosítás.
Beküldendő egy tömörített is15.zip állományban a program forráskódja és rövid dokumentációja, amely ismerteti a megoldás menetét és megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.