Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az I. 682. feladat (2025. december)

I. 682. András széles könyvespolcán egymás mellett sorakoznak a könyvek. A legtöbb könyv András kedvenc szerzőitől van, némelyiktől jó néhány, de vannak olyan szerzők is, akiktől csak egy könyv. András könyvei egy sorban egymás mellett vannak a polcon, semmilyen szempontból nincsenek rendezve, és András nem szeretné őket átrendezni. Azért, hogy mégis jobban elkülönüljenek, kitalálta, hogy mindegyik könyv kapjon egy megfelelő színű papírkötést. Az azonos szerzőtől származó könyvek azonos színt kapjanak, de ezt a színt kaphatják még más szerzőtől származó könyvek is. De az nem fordulhat elő, hogy két egymás melletti könyv azonos színű, de nem azonos a szerzőjük. András alaposan elgondolkodott azon, hogy végül is hány különböző színű papírt kell vennie a bekötéshez, és melyikből mennyit.

Készítsünk programot i682 néven, amely a polcon sorakozó könyvek száma és a könyvek szerzői ismeretében kiszámítja, hogy legkevesebb hány színt kell használni a bekötéshez, illetve melyik színnel hány könyvet kell majd bekötni.

A program standard bemenetének első sorában a könyvek száma (\(\displaystyle 1\le N\le 500\)) szerepel. A következő sorban egy-egy szóközzel elválasztva \(\displaystyle N\) darab egész szám található: az \(\displaystyle i\)-edik szám a polcon található \(\displaystyle i\)-edik könyv \(\displaystyle s_i\) szerzőjét jelenti (\(\displaystyle {1\le s_i\le N}\)). Természetesen minden szerzőnek egyedi száma van, amely pontosan az ő könyveit jelöli.

A program a standard kimenet első sorába írja ki, hogy legalább hány színt kell használni a bekötéshez, a kimenet második sorába szóközzel elválasztva adja meg, hogy az egyes színekhez hány könyv tartozik, a kimenet harmadik sorában adja meg a könyvek egy lehetséges színezését. A program sorrendben adjon színt a könyveknek, az első könyvnek az 1-es színt, a következő eltérő színű könyvnek a 2-es színt és így tovább.

Példa:

Beküldendő egy tömörített i682.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ó.

(10 pont)

A beküldési határidő 2026. január 15-én LEJÁRT.


Mintamegoldásként Rajtik Sándor Barnabás budapesti versenyző Python nyelvű munkáját(i682.py), Szabó Imre Bence budapesti versenyző C++ programját (i682.cpp) és Kezdődy Gréta budapesti versenyző C# nyelvű megoldását(i682.cs) adjuk közre.


Statisztika:

10 dolgozat érkezett.
10 pontot kapott:Kezdődy Gréta, Krajcsovszki László, Rajtik Sándor Barnabás, Szabó Imre Bence, Tóth Marcell Domonkos.
9 pontot kapott:Szekeres Linda.
6 pontot kapott:1 versenyző.
Nem versenyszerű:1 dolgozat.

A KöMaL 2025. decemberi informatika feladatai