Az I. 527. feladat (2021. január) |
I. 527. (É). Egy társaságban többen vannak, akik különböző helyekről ismerik egymást, de vannak szép számmal olyanok is, akik még sohasem találkoztak. Az ismeretségek kölcsönösek.
Zoltán nagyon érdeklődik a gráfok iránt, ezért gyorsan feltérképezi a társaságot az ismeretségek alapján. Egy papírra feljegyzi az egymást ismerők monogramját a következő formában: KP NZ JJ SA NZ BC \(\displaystyle \ldots\ \)A leírásban párok fordulnak elő, tehát KP és NZ ismeri egymást, JJ és SA ismeri egymást \(\displaystyle \ldots\ \) A monogramok minden esetben az angol ABC két nagybetűjéből állnak, és nincs két azonos monogrammal jelölt személy. Minden ismeretség csak egyszer kerül feljegyzésre, és teljesen véletlenszerű, hogy melyik fél szerepel azon elsőként vagy másodikként.
Zoltán később több kérdést is megfogalmazott, amely az ismeretségekre vonatkozik. Mivel a társaság elég nagy, ezért úgy gondolta, hogy a kérdésekre előbb választ kaphat, ha számítógépes programot készít. Segítsünk neki, oldjuk meg a következő feladatokat.
1. A párok monogramjai a honlapunkról letölthető parok.txt szöveges állomány egy sorában vannak egy-egy szóközzel elválasztva, legföljebb 500 monogram, azaz 250 ismeretség. Olvassuk be és tároljuk el a további feldolgozáshoz a monogramokat és az ismertségeket. Részlet a parok.txt állományból:
KP NZ JJ SA NZ BC MP AC BJ KC KJ MP ...
2. Adjuk meg, hogy hány személy szerepel az állományban.
3. Kérjük be egy személy monogramját, és adjuk meg a monogramjaik ABC-sorrendjében az ismerőseit.
4. Adjuk meg, hogy melyik személynek van a legtöbb ismerőse a társaságban. Ha több ilyen személy van, akkor elegendő az egyiket megadni: írjuk ki a monogramját és ismerőseinek számát.
5. Kérjük be egy másik személy monogramját, és adjuk meg, hogy hány közös ismerőse van az előbbi feladatban bekért személlyel.
6. Adjuk meg, kik azok, akik nem ismerik az előbb bekért személyt és annak egyetlen ismerősét sem.
Beküldendő egy tömörített i527.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ó.
Letölthető állomány: parok.txt.
(10 pont)
A beküldési határidő 2021. február 18-án LEJÁRT.
Mintamegoldásként Nagy Korina kecskeméti, 8. évfolyamos tanuló Python nyelven készült munkáját (i527.py), valamint Gyönki Dominik egri, 9. évfolyamos versenyző C# megoldását (i527.cs), és Bagladi Milán Zsolt nagykanizsai, 10. évfolyamos tanuló C++ nyelven készült programját (i527.cpp) adjuk közre.
Statisztika:
17 dolgozat érkezett. 10 pontot kapott: Bagladi Milán Zsolt, Dezsőfi Míra, Gyönki Dominik, Horcsin Bálint, Kmeczó András, Mályusz Etre Magnusz, Nagy 292 Korina, Orosz Réka Ildikó, Szabó Máté, Ürmössy Dorottya, Vidák-Bécs Máté, Zádor-Nagy Zsombor. 9 pontot kapott: Tóth 057 Bálint, Vadász Levente Márton. 7 pontot kapott: 1 versenyző. 6 pontot kapott: 1 versenyző. 3 pontot kapott: 1 versenyző.
A KöMaL 2021. januári informatika feladatai