QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 2048 MB Total points: 100

#7665. Bagagem

Statistics

Uma companhia aérea tem dois voos que partem de ICPCity aproximadamente à mesma hora, um para a cidade B e outro para a cidade A. A companhia tem também $n$ balcões onde os passageiros despacham a bagagem. Em cada balcão há um par de contentores de bagagem idênticos, um para a cidade B e outro para a cidade A.

Pouco antes da partida, cada par de contentores é transportado por um carro motorizado até uma zona de triagem. O carro transporta sempre dois contentores de cada vez, um para a cidade B e outro para a cidade A. Depois de todos serem transportados, ficam alinhados na zona de triagem desta forma:

$$\mathrm{B\ A\ B\ A\ B\ A\ \ldots\ B\ A}$$

Ou seja, existem $2n$ contentores numa fila, começando por um para a cidade B, seguido de um para a cidade A, e assim sucessivamente. A tarefa é reordená-los para que todos os contentores para A fiquem antes de todos os contentores para B. Depois, poderão ser carregados nos aviões correspondentes.

A reordenação é feita movendo pares de contentores adjacentes (não necessariamente B seguido de A), também com o carro motorizado. Para manter o equilíbrio, o carro deve transportar sempre dois contentores, nunca apenas um. Cada par deve ser movido para um espaço vazio com largura de pelo menos dois contentores. À esquerda do primeiro contentor existem espaços vazios que podem ser usados conforme necessário durante a reordenação.

No início da reordenação, as posições dos contentores estão numeradas de $1$ (inicialmente com o contentor B mais à esquerda) a $2n$ (inicialmente com o contentor A mais à direita). Existem $2n$ espaços inicialmente vazios à esquerda, numerados de $0$ a $-2n+1$, como mostra a Figura A.1 para $n=4$.

problem_7665_113d453aa04e914f3a265312f8ef181c.png

Figura A.1: Configuração inicial dos contentores e espaços vazios para $n=4$

Dado $n$, encontra uma sequência de movimentos mais curta possível que coloque todos os contentores A à esquerda de todos os contentores B. No final, o contentor A mais à esquerda pode estar numa posição diferente de $1$, mas os contentores devem ocupar uma sequência de $2n$ posições adjacentes, sem espaços entre eles.

Entrada

A entrada consiste num único caso de teste, constituído pelo inteiro $n$ ($3 \le n \le 100$).

Saída

Apresenta uma sequência de movimentos mais curta possível que reordene corretamente os contentores. Cada movimento tem a forma «$f$ to $t$», em que os inteiros $f$ e $t$ representam a deslocação dos contentores das posições $f$ e $f+1$ para as posições $t$ e $t+1$. Se houver várias soluções, apresenta qualquer uma.

Exemplos

Entrada 1

5

Saída 1

8 to -1
3 to 8
6 to 3
0 to 6
9 to 0

Entrada 2

8

Saída 2

10 to -1
3 to 10
14 to 3
7 to 14
0 to 7
11 to 0
4 to 11
15 to 4

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.