Next: A entrada
Up: No Title
Previous: Exemplos
Dada uma pilha de panquecas, você deve escrever um programa que indica como a pilha pode ser ordenada de forma que a maior panqueca está no fundo e a menor panqueca está no topo. O tamanho de uma panqueca é dado pelo seu diâmetro. Todas as panquecas de uma pilha têm diâmetros diferentes.
A ordenação da pilha é feita através de uma seqüência de ``giros'' ( flips) de panquecas. Um giro consiste em inserir a espátula entre duas panquecas em uma pilha e girar (reverter) todas as panquecas que estão em cima da espátula (revertendo a subpilha). Um giro é especificado dando a posição da panqueca da subpilha que será revertida (em relação à pilha completa). A panqueca do fundo da pilha inteira tem posição 1 e a panqueca do topo de uma pilha com panquecas tem posição .
Uma pilha é especificada dando o diâmetro de cada panqueca da pilha na ordem em que as panquecas aparecem.
Por exemplo, considere as três pilhas de panquecas abaixo (nas quais a panqueca 8 está no topo da pilha mais à esquerda):
8 | 7 | 2 |
4 | 6 | 5 |
6 | 4 | 8 |
7 | 8 | 4 |
5 | 5 | 6 |
2 | 2 | 7 |
A pilha mais à esquerda pode ser transformada na pilha do meio fazendo a operação flip(3). A pilha do meio pode ser transformada na pilha à direita através do comando flip(1).
Carlos Eduardo Ferreira