Skiena y Revilla, Concursos Internacionales de Informática y Programación Manual de Entrenamiento por Internet, Universidad de Valladolid, España, 2003. ISBN: 84-8448-371-1 110402 Torres de tortitas Cocinar una torre de tortitas perfecta en una parrilla es bastante complicado porque, por mucho cuidado que se ponga, las tortitas de una misma torre siempre tendrán diámetros diferentes. De todas formas, para mejorar la presentación, es posible ordenar las tortitas de la torre por tamaño, de forma que cada una de ellas sea menor que la que tiene debajo. El tamaño de la tortita lo determina su diámetro. La torre se ordena mediante una secuencia de “volteos” de las tortitas. Un volteo consiste en introducir una espátula entre dos tortitas de la torre, y dar la vuelta a todas las tortitas que quedan encima de la espátula (es decir, se da la vuelta a un subconjunto de la torre). Un volteo se especifica indicando la posición de la tortita inferior del subconjunto en relación a la torre completa. La tortita inferior ocupa la posición 1, mientras que la superior, en una torre de n tortitas, ocupa la posición n. Una torre se define a través del diámetro de cada tortita en el orden en el que están colocadas inicialmente. Por ejemplo, observemos las tres torres de tortitas que se muestran a continuación, donde la tortita 8 es la superior en la torre de la izquierda: 8 4 6 7 5 2 7 6 4 8 5 2 2 5 8 4 6 7 La torre de la izquierda puede transformarse en la torre del medio mediante volteo(3). La torre del medio puede transformarse en la de la derecha con el comando volteo(1). Entrada La entrada constará de una secuencia de torres de tortitas. Cada torre podrá tener entre 1 y 30 tortitas, y cada tortita tendrá un diámetro definido por un entero entre 1 y 100. La entrada termina con un carácter de fin de archivo. Cada torre aparece como una única lı́nea de la entrada, siendo la tortita superior la primera en aparecer en la lı́nea, la inferior la última y sabiendo que están separadas entre sı́ por un espacio. Salida Por cada torre de tortitas, el programa deberá mostrar la torre original en una lı́nea, seguida por una secuencia de volteos cuyo resultado final sea la ordenación de la torre, de forma que la tortita más grande quede en la parte inferior y la más pequeña en la superior. La secuencia de volteos se termina con un 0, indicando que ya no son necesarios más. Una vez que la torre esté ordenada, no se deben realizar más volteos. http://www.programming-challenges.com c copyright 2006 Skiena y Revilla, Concursos Internacionales de Informática y Programación Manual de Entrenamiento por Internet, Universidad de Valladolid, España, 2003. ISBN: 84-8448-371-1 Ejemplo de entrada 1 2 3 4 5 5 4 3 2 1 5 1 2 3 4 Ejemplo de salida 1 0 5 1 5 1 2 3 4 5 4 3 2 1 0 1 2 3 4 2 0 http://www.programming-challenges.com c copyright 2006