Sumar manualmente las caras de un cubo cúbico es tedioso y requiere mucho tiempo, como escribir código en el propio cubo.
En Cubifier más eficiente , le pedí que tradujera ASCII a Cubically source. Una de las respuestas allí utiliza una secuencia de inicialización del cubo y luego modifica el cubo resultante en función de las sumas del cubo preinicializado. Este método se ha utilizado en muchos programas relacionados con el Cubic desde entonces. Al probar una nueva secuencia de inicialización, uno tiene que sumar todos los valores en todas las caras, lo que generalmente toma dos o tres minutos.
¡Su tarea es automatizar este proceso para nosotros!
Tomarás dos entradas, un entero n
y una cadena c
. Estos pueden leerse desde argumentos de línea de comando, argumentos de función, entrada estándar, un archivo o cualquier combinación de ellos. c
será un cubo de memoria de tamaño cúbicon
tal como lo imprime el intérprete.
El intérprete Cubically volca su cubo a STDERR al finalizar el programa, formateado muy bien para una visualización simple. Ejecute un programa vacío en el intérprete Cubically y abra la sección de depuración para ver el volcado de cubo de un cubo inicializado. Agregue un argumento 4
para ver un 4x4x4, o 5
para ver un 5x5x5, etc.
Si n
es 3, c
seguirá este formato (los enteros serán variables):
000
000
000
111222333444
111222333444
111222333444
555
555
555
Espacios, líneas nuevas y todo. Si n
es 4, c
se verá así (también con enteros variables):
0000
0000
0000
0000
1111222233334444
1111222233334444
1111222233334444
1111222233334444
5555
5555
5555
5555
Etcétera.
Su programa generará seis enteros. El primer entero será la suma de todos los números en la cara superior.
000
000 top face
000
111222333444 left, front, right, and back faces, respectively
111222333444
111222333444
555
555 bottom face
555
El segundo número entero será la suma de la cara izquierda, el tercero al frente, el cuarto al derecho, el quinto al reverso y el sexto al final.
Entonces si n
fue 3 y c
fue esto:
242
202
242
000131555313
010121535343
000131555313
424
454
424
Su programa saldría 20 1 14 43 24 33
.
Reglas adicionales:
- Los enteros de salida deben estar delimitados por caracteres no enteros. También puede optar por devolver una matriz.
- Puede suponer que la entrada es correcta:
n
es un número entero yc
es un cubo de la salida de depuración de Cubically . Entonces sin
fue3.0
yc
fuefoo bar
, su programa podría romperse y seguir siendo válido. - Su programa solo necesita trabajar para
n > 1
yn < 1260
. Se puede (intentar) manejar tamaños de cubos grandes o más pequeñas, pero no es necesario.
Este es el código de golf , por lo que gana el código más corto. Si necesita ayuda, no dude en preguntar en la sala de chat de Cubically .
n
espacios después de cada línea, no. No están incluidos en el basurero.