On vous donne un tas de tubes à essai ASCII, votre tâche est de réduire le nombre de tubes à essai utilisés.
Chaque tube à essai ressemble à ceci:
| |
| |
| |
|~~|
| |
| |
| |
| |
|__|
De toute évidence, ~~c'est le niveau de l'eau. Le tube à essai peut également être vide, auquel cas il n'y a pas de ~~caractères à l'intérieur. Un seul tube peut contenir jusqu'à 8 unités de niveau d'eau.
On vous donne un nombre fini de tubes à essai avec différents niveaux d'eau à l'intérieur. Vous devez verser l'eau dans le moins de tubes à essai possible et produire le résultat.
| | | | | | | | |~~| | |
| | | | | | | | | | | |
| | |~~| | | | | | | | |
|~~| | | | | | | | | |~~|
| | | | | | | | ------> | | | |
| | | | | | | | | | | |
| | | | |~~| | | | | | |
| | | | | | | | | | | |
|__| |__| |__| |__| |__| |__|
05 + 06 + 02 + 00 ------> 08 + 05
Comme vous pouvez le voir, les éprouvettes sont séparées par un seul espace. Les tubes vides ne doivent pas être affichés en sortie. Il s'agit de code golf, donc le code avec le moins d'octets gagne.
Cas de test: http://pastebin.com/BC0C0uii
Bon golf!