Heu d’implementar un programa que manega estudiants, assignatures, i quins estudiants estan inscrits en quines assignatures.
L’entrada consistirà en una llista de comandes. Entre elles, hi ha comandes que matriculen un estudiant en una assignatura. Per exemple:
ENROLL maria.lapuente Algebra
ENROLL maria.lapuente OperatingSystems
ENROLL john.smith Programming
ENROLL nuria.margalef Calculus
ENROLL laura.venture Algebra
ENROLL maria.lapuente Calculus
ENROLL laura.venture Programming
ENROLL maria.lapuente Programming
ENROLL nuria.margalef Programming
També hi ha comandes que donen de baixa un estudiant en una assignatura. Per exemple:
QUIT maria.lapuente Programming
QUIT laura.venture Algebra
També hi ha comandes que demanen la llista d’assignatures, en ordre lexicogràfic, en les quals un estudiant donat està matriculat. Per exemple:
SUBJECTSOFSTUDENT maria.lapuente
SUBJECTSOFSTUDENT john.smith
SUBJECTSOFSTUDENT nuria.margalef
Incloent les comandes prèvies de matricular i donar de baixa, la sortida seria aquesta:
Algebra Calculus OperatingSystems
Programming
Calculus Programming
També hi ha comandes que demanen la llista de persones, en ordre lexicogràfic, que estan matriculades en una assignatura. Per exemple:
STUDENTSOFSUBJECT Algebra
STUDENTSOFSUBJECT Calculus
STUDENTSOFSUBJECT Programming
Incloent les comandes prèvies de matricular i donar de baixa, la sortida seria aquesta:
maria.lapuente
maria.lapuente nuria.margalef
john.smith laura.venture nuria.margalef
Observació: Podeu seguir l’enfoc que considereu oportú, i podeu utilitzar qualsevol de les classes presentades al curs (string, vector, stack, queue, list, map, set) de la manera que considereu oportuna. Però tingueu en compte que la vostra elecció pot afectar a l’eficiència de la vostra solució, i per tant al fet de poder superar tots els jocs de proves o només els públics (cosa que us deixarà amb la meitat de la nota).
Cada linia de l’entrada consisteix en una instrucció del següent
tipus, a on student i
subject es poden llegir com strings no buits
qualsevols, i tenen menys de 20 caràcters:
ENROLL student subject
QUIT student subject
SUBJECTSOFSTUDENT student
STUDENTSOFSUBJECT subject
Podem suposar que les entrades son correctes: mai s’afegeix un estudiant a una assignatura si ja hi és, i mai es dona de baixa un estudiant d’una assignatura si no hi és.
Per a cada instrucció
SUBJECTSOFSTUDENT student, s’escriurà una
línia per la sortida amb la llista d’assignatures actuals de
l’estudiant, separada per espais en blanc.
Per a cada instrucció
STUDENTSOFSUBJECT subject, s’escriurà una
línia per la sortida amb la llista d’estudiants actuals de
l’assignatura, ordenada lexicogràficament, i separada per espais en
blanc.
Avaluació sobre 10 punts:
Solució lenta: 5 punts.
solució ràpida: 10 punts.
Entenem com a solució ràpida una que és correcta, de cost o inferior, i capaç de superar els jocs de proves públics i privats. Entenem com a solució lenta una que no és ràpida, però és correcta i capaç de superar els jocs de proves públics.
Autoria: PRO2
Generació: 2026-01-25T17:08:38.563Z
© Jutge.org, 2006–2026.
https://jutge.org