Hintergrund
Sie arbeiten als Programmierer für eine Autoverkaufsfirma. Ihre Aufgabe für diese Woche ist es, einen XML-Parser zu programmieren, der Daten zu verfügbaren Modellen verschiedener Autohersteller aufnimmt und Informationen zu den neuesten Modellen druckt. Zum Glück hat die Testabteilung nur einen Testfall zur Verfügung gestellt! Je schneller Sie Code schreiben können, der ihn übergibt, desto mehr Zeit steht Ihnen für den Rest der Woche zur Verfügung.
Eingang
Ihre Eingabe besteht genau aus diesen XML-Daten, die von der Testabteilung bereitgestellt werden. Es enthält Daten zu einigen Autoherstellern, ihren Fahrzeugserien und den Modellen dieser Serien. Sie können von einem nachgestellten Zeilenumbruch ausgehen.
<?xml version="1.0" ?>
<products>
<manufacturer name="Test Manufacturer 1">
<series title="Supercar" code="S1">
<model>
<name>Road Czar</name>
<code>C</code>
<year>2011</year>
</model>
<model>
<name>Ubervehicle</name>
<code>U</code>
<year>2013</year>
</model>
<model>
<name>Incredibulus</name>
<code>I</code>
<year>2015</year>
</model>
<model>
<name>Model 1</name>
<code>01</code>
<year>2010</year>
</model>
</series>
<series title="Test series 22" code="Test">
<model>
<name>Test model asdafds</name>
<code>TT</code>
<year>2014</year>
</model>
</series>
</manufacturer>
<manufacturer name="Car Corporation">
<series title="Corporation Car" code="CC">
<model>
<name>First and Only Model</name>
<code>FOM</code>
<year>2012</year>
</model>
</series>
</manufacturer>
<manufacturer name="Second Test Manufacturer">
<series title="AAAAAAAAAAAAAA" code="D">
<model>
<name>Some older model</name>
<code>O</code>
<year>2011</year>
</model>
<model>
<name>The newest model</name>
<code>N</code>
<year>2014</year>
</model>
</series>
<series title="BBBBBBBBBBBBBBB" code="asdf">
<model>
<name>Another newest model here</name>
<code>TT</code>
<year>2015</year>
</model>
</series>
</manufacturer>
</products>
Ausgabe
Ihre Ausgabe ist diese Zeichenfolge. Es listet die Autohersteller in alphabetischer Reihenfolge auf, gefolgt von einem Doppelpunkt und der Anzahl der Serien, die sie herstellen. Unter jedem Hersteller werden der Serienname, der Modellname und der Code jedes einzelnen Modells aufgelistet, beginnend mit dem neuesten Modell und rückwärts nach Jahr. Nachgestellte Leerzeichen und Zeilenumbrüche sind zulässig, sofern Ihre Ausgabe beim Drucken ähnlich aussieht.
Car Corporation: 1 series
Corporation Car, First and Only Model (CC-FOM)
Second Test Manufacturer: 2 series
BBBBBBBBBBBBBBB, Another newest model here (asdf-TT)
AAAAAAAAAAAAAA, The newest model (D-N)
AAAAAAAAAAAAAA, Some older model (D-O)
Test Manufacturer 1: 2 series
Supercar, Incredibulus (S1-I)
Test series 22, Test model asdafds (Test-TT)
Supercar, Ubervehicle (S1-U)
Supercar, Road Czar (S1-C)
Supercar, Model 1 (S1-01)
Regeln und Wertung
Sie können entweder eine Funktion oder ein vollständiges Programm schreiben. Die niedrigste Byteanzahl gewinnt, und Standardlücken sind nicht zulässig.
Beachten Sie, dass die Eingabe fest ist: Sie müssen keine anderen Eingaben als die hier angegebene unterstützen. Ihr Programm kann Unsinn zurückgeben oder sogar abstürzen, wenn die Eingabe in irgendeiner Weise geändert wird. Bei Bedarf können Sie auch die Eingabe ignorieren und die Ausgabe hart codieren. Möglicherweise verwenden Sie jedoch keine XML- oder HTML-Parser-Bibliotheken oder integrierten Funktionen.