Contexte
Vous travaillez en tant que programmeur pour une entreprise de vente de voitures. Votre tâche pour cette semaine est de programmer un analyseur XML qui prend les données sur les modèles disponibles de différents constructeurs automobiles et jette des informations sur les nouveaux modèles. Heureusement pour vous, le département de test n'a fourni qu'un seul cas de test! Plus vite vous pouvez écrire du code qui le transmet, plus vous avez de temps pour la procrastination pendant le reste de la semaine.
Contribution
Votre entrée est exactement ce morceau de données XML, fourni par le service de test. Il contient des données sur certains constructeurs automobiles, leurs séries de voitures et les modèles de ces séries. Vous pouvez supposer une nouvelle ligne de fin.
<?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>
Production
Votre sortie est cette chaîne. Il répertorie les constructeurs automobiles par ordre alphabétique, suivi par deux points et le nombre de séries qu'ils font. Sous chaque fabricant, il répertorie le nom de la série, le nom du modèle et le code de chacun de leurs modèles, en commençant par le plus récent et en reculant par année. Les espaces de fin et les sauts de ligne sont acceptables, tant que votre sortie ressemble à ceci lors de l'impression.
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)
Règles et notation
Vous pouvez écrire soit une fonction soit un programme complet. Le nombre d'octets le plus bas gagne et les failles standard sont interdites.
Notez que l'entrée est fixe: vous n'avez pas besoin de prendre en charge d'autres entrées que celle indiquée ici. Votre programme est autorisé à retourner des bêtises ou même à planter si l'entrée est modifiée de quelque manière que ce soit. Vous pouvez également ignorer l'entrée et coder en dur la sortie, si vous le souhaitez. Cependant, vous ne pouvez pas utiliser de bibliothèques d'analyseurs XML ou HTML intégrées.