sfondo
Stai lavorando come programmatore per una società di vendita di automobili. Il tuo compito per questa settimana è programmare un parser XML che raccolga dati sui modelli disponibili di diverse case automobilistiche e stampi graziosamente informazioni sui modelli più recenti. Fortunatamente per te, il reparto test ha fornito solo un caso di test! Più veloce puoi scrivere il codice che lo supera, più tempo hai per procrastinare durante il resto della settimana.
Ingresso
Il tuo input è esattamente questo pezzo di dati XML, fornito dal reparto test. Contiene dati su alcune case automobilistiche, le loro serie di auto e i modelli di queste serie. Puoi assumere una nuova riga finale.
<?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>
Produzione
Il tuo output è questa stringa. Elenca le case automobilistiche in ordine alfabetico, seguite da due punti e dal numero di serie che realizzano. Sotto ogni produttore, elenca il nome della serie, il nome del modello e il codice di ciascuno dei loro modelli, a partire dal più recente e andando indietro di anno in anno. Gli spazi bianchi finali e le interruzioni di riga sono accettabili, purché l'output sia simile a questo quando viene stampato.
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)
Regole e punteggio
È possibile scrivere una funzione o un programma completo. Vince il conteggio di byte più basso e non sono consentite scappatoie standard.
Si noti che l'input è fisso: non è necessario supportare altri input oltre a quello indicato qui. Il tuo programma è autorizzato a restituire sciocchezze o persino crash se l'input viene modificato in alcun modo. È inoltre possibile ignorare l'input e codificare l'output, se lo si desidera. Tuttavia, è possibile non utilizzare XML o HTML parser librerie o built-in.