Le dan un montón de tubos de ensayo ASCII, su tarea es reducir el número de tubos de ensayo utilizados.
Cada tubo de ensayo se ve así:
| |
| |
| |
|~~|
| |
| |
| |
| |
|__|
Obviamente, ~~es el nivel del agua. El tubo de ensayo también puede estar vacío, en cuyo caso no hay ~~caracteres dentro. Un solo tubo puede contener hasta 8 unidades de nivel de agua.
Se le da un número finito de tubos de ensayo con diferentes niveles de agua en el interior. Debe verter el agua en la menor cantidad posible de tubos de ensayo y obtener el resultado.
| | | | | | | | |~~| | |
| | | | | | | | | | | |
| | |~~| | | | | | | | |
|~~| | | | | | | | | |~~|
| | | | | | | | ------> | | | |
| | | | | | | | | | | |
| | | | |~~| | | | | | |
| | | | | | | | | | | |
|__| |__| |__| |__| |__| |__|
05 + 06 + 02 + 00 ------> 08 + 05
Como puede ver, los tubos de ensayo se separan con un solo espacio. Los tubos vacíos no deben mostrarse en la salida. Este es el código golf, por lo que gana el código con el menor número de bytes.
Casos de prueba: http://pastebin.com/BC0C0uii
¡Feliz golf!