Eingereicht von Ivan Dolvich
(aus dem Bundeswettbewerb Informatik, sollte aber zu schaffen sein, eventuell ist Schwierigkeit 3 sogar übertrieben
)
Aufgabenstellung: tratsCH trATsch
Die Leute vom Planeten Chator schreiben gern Schlechtes ubereinander.
Wer vielen uber andere Schlechtes schreibt, gilt als besonders charmant.
Aber natürlich nur, wenn die Kompromittierten nichts davon erfahren.
Chatonen schreiben nur an Leute, die Ihnen sympathisch sind. Doch die
können den Tratsch weitertragen, und eventuell genau an den Falschen.
Ein Chatone muss also gut aufpassen, dass er keinen Charmefehler macht.
Dieses Missgeschick passierte unlängst Ator, als er Btor Schlechtes
über Dtor schrieb. Zu dumm: Dtor ist dem Ctor sympathisch, der wiederum
Btor sympathisch ist.
Und so landete der Tratsch bei Dtor, der uber Ator verständlicherweise
sehr verärgert war. Dies hätte Ator mit ein wenig Übersicht vermeiden
können, denn schließlich wissen alle Chatonen voneinander, wer wem
sympathisch ist.
Aufgabe:
Programmiere einen Charminator, der einliest, welche Chatonen welchen
anderen sympathisch sind. Er soll auf dieser Grundlage möglichst kompakt
für alle Chatonen ausgeben, wem der Betreffende uber wen Schlechtes
schreiben kann, ohne einen Charmefehler zu riskieren.
Teste dein Programm an drei Beispielen für mindestens 5 und höchstens 10
Chatonen; verwende auf jeden Fall das folgende Beispiel:
Bedenke dabei, dass eine Tratschnachricht von Chatone x nach Chatone y
weder x noch y betrifft und dass ein Chatone eine Nachricht, die
ursprünglich von ihm selbst stammt und wieder bei ihm ankommt, nicht
weiterleiten wird ? so dumm sind Chatonen nicht
(aus dem Bundeswettbewerb Informatik, sollte aber zu schaffen sein, eventuell ist Schwierigkeit 3 sogar übertrieben

Aufgabenstellung: tratsCH trATsch
Die Leute vom Planeten Chator schreiben gern Schlechtes ubereinander.
Wer vielen uber andere Schlechtes schreibt, gilt als besonders charmant.
Aber natürlich nur, wenn die Kompromittierten nichts davon erfahren.
Chatonen schreiben nur an Leute, die Ihnen sympathisch sind. Doch die
können den Tratsch weitertragen, und eventuell genau an den Falschen.
Ein Chatone muss also gut aufpassen, dass er keinen Charmefehler macht.
Dieses Missgeschick passierte unlängst Ator, als er Btor Schlechtes
über Dtor schrieb. Zu dumm: Dtor ist dem Ctor sympathisch, der wiederum
Btor sympathisch ist.
Und so landete der Tratsch bei Dtor, der uber Ator verständlicherweise
sehr verärgert war. Dies hätte Ator mit ein wenig Übersicht vermeiden
können, denn schließlich wissen alle Chatonen voneinander, wer wem
sympathisch ist.
Aufgabe:
Programmiere einen Charminator, der einliest, welche Chatonen welchen
anderen sympathisch sind. Er soll auf dieser Grundlage möglichst kompakt
für alle Chatonen ausgeben, wem der Betreffende uber wen Schlechtes
schreiben kann, ohne einen Charmefehler zu riskieren.
Teste dein Programm an drei Beispielen für mindestens 5 und höchstens 10
Chatonen; verwende auf jeden Fall das folgende Beispiel:
Code:
Dem Chatonen sind sympathisch:
A B E
B C
C D G
D C
E F
F B E G
G H
H D
weder x noch y betrifft und dass ein Chatone eine Nachricht, die
ursprünglich von ihm selbst stammt und wieder bei ihm ankommt, nicht
weiterleiten wird ? so dumm sind Chatonen nicht
Losungsidee nach Benjamin Berger
Die Sympathiebeziehungen der Chatonen werden als ein gerichteter Graph
aufgefasst: die Chatonen sind die Knoten, die direkten
Sympathiebeziehungen die gerichteten Kanten. Dann wird
der Weg einer Nachricht von einem Chatonen S (Sender) an einen dem S
sympathischen Chatonen E (Empfänger) für alle möglichen Paare (S,E) wie
folgt nachvollzogen: Der Graph wird beginnend bei E rekursiv durchsucht
(Tiefensuche), bis entweder S selbst erreicht wird (der die
Nachricht nicht weiterleitet) oder ein gefundener Chatone schon besucht
wurde, die Nachricht also schon erhalten hat. Über alle Chatonen, die
nicht besucht wurden, kann S bei E tratschen ? da E an sie den Tratsch
eben nicht weiterleiten kann.
Die Sympathiebeziehungen der Chatonen werden als ein gerichteter Graph
aufgefasst: die Chatonen sind die Knoten, die direkten
Sympathiebeziehungen die gerichteten Kanten. Dann wird
der Weg einer Nachricht von einem Chatonen S (Sender) an einen dem S
sympathischen Chatonen E (Empfänger) für alle möglichen Paare (S,E) wie
folgt nachvollzogen: Der Graph wird beginnend bei E rekursiv durchsucht
(Tiefensuche), bis entweder S selbst erreicht wird (der die
Nachricht nicht weiterleitet) oder ein gefundener Chatone schon besucht
wurde, die Nachricht also schon erhalten hat. Über alle Chatonen, die
nicht besucht wurden, kann S bei E tratschen ? da E an sie den Tratsch
eben nicht weiterleiten kann.