QOJ.ac

QOJ

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

#7665. Bagaż

Statistics

Linia lotnicza ma dwa loty odlatujące z ICPCity mniej więcej w tym samym czasie, jeden do miasta B i drugi do miasta A. Ma też $n$ stanowisk, przy których pasażerowie nadają bagaż. Przy każdym stanowisku znajduje się para identycznych pojemników na bagaż, jeden dla miasta B, a drugi dla miasta A.

Tuż przed odlotem każda para pojemników jest przewożona wózkiem silnikowym do sortowni. Wózek zawsze przewozi dwa pojemniki naraz, jeden dla miasta B i jeden dla miasta A. Gdy wszystkie zostaną przewiezione, stoją w sortowni w następującym szeregu:

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

W szeregu znajduje się zatem $2n$ pojemników, zaczynając od pojemnika dla miasta B, następnie dla miasta A i tak dalej. Teraz należy je przestawić tak, aby wszystkie pojemniki dla miasta A znajdowały się przed pojemnikami dla miasta B. Następnie można je załadować do odpowiednich samolotów.

Przestawianie polega na przenoszeniu par sąsiednich pojemników (niekoniecznie B, a potem A), również przy użyciu wózka. Dla zachowania równowagi wózek musi zawsze przewozić dwa pojemniki, nigdy jeden. Para musi być przeniesiona na puste miejsce o szerokości co najmniej dwóch pojemników. Na lewo od pierwszego pojemnika są wolne miejsca, których można używać w razie potrzeby.

Na początku przestawiania miejsca pojemników mają numery od $1$ (początkowo zajmowanego przez skrajnie lewy pojemnik B) do $2n$ (początkowo zajmowanego przez skrajnie prawy pojemnik A). Na lewo jest $2n$ początkowo pustych miejsc o numerach od $0$ do $-2n+1$, jak na rysunku A.1 dla $n=4$.

problem_7665_113d453aa04e914f3a265312f8ef181c.png

Rysunek A.1: Początkowy układ pojemników i pustych miejsc dla $n=4$

Dla danego $n$ znajdź najkrótszy ciąg ruchów, po którym wszystkie pojemniki A będą na lewo od wszystkich pojemników B. Na końcu skrajnie lewy pojemnik A może znajdować się na pozycji innej niż $1$, ale wszystkie pojemniki muszą zajmować kolejno $2n$ sąsiednich miejsc bez przerw.

Wejście

Wejście zawiera jeden przypadek testowy, składający się z liczby całkowitej $n$ ($3 \le n \le 100$).

Wyjście

Wypisz najkrótszy ciąg ruchów, który poprawnie uporządkuje pojemniki. Każdy ruch ma postać „$f$ to $t$”, gdzie liczby całkowite $f$ i $t$ oznaczają przeniesienie pojemników z miejsc $f$ i $f+1$ na miejsca $t$ i $t+1$. Jeśli istnieje wiele rozwiązań, wypisz dowolne.

Przykład

Wejście 1

5

Wyjście 1

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

Wejście 2

8

Wyjście 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.