QOJ.ac

QOJ

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

#7665. Hành lý

Statistics

Một hãng hàng không có hai chuyến bay rời ICPCity vào khoảng cùng thời điểm, một chuyến đến thành phố B và một chuyến đến thành phố A. Hãng còn có $n$ quầy để hành khách ký gửi hành lý. Mỗi quầy có một cặp thùng hành lý giống nhau, một thùng dành cho thành phố B và một thùng dành cho thành phố A.

Ngay trước khi các chuyến bay khởi hành, mỗi cặp thùng được xe có động cơ chuyển đến khu phân loại. Xe luôn chở hai thùng mỗi lần, một thùng cho thành phố B và một thùng cho thành phố A. Sau khi chuyển hết, các thùng xếp thành hàng như sau:

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

Tức là có $2n$ thùng trong một hàng, bắt đầu bằng thùng cho thành phố B, rồi thùng cho thành phố A, cứ thế tiếp tục. Nhiệm vụ là sắp xếp lại để tất cả thùng cho A đứng trước tất cả thùng cho B. Sau đó có thể đưa các thùng lên máy bay tương ứng.

Việc sắp xếp lại được thực hiện bằng cách di chuyển từng cặp thùng kề nhau (không nhất thiết theo thứ tự B rồi A), vẫn bằng xe có động cơ. Để giữ thăng bằng, xe luôn phải chở hai thùng, không bao giờ chỉ chở một. Một cặp thùng luôn phải được chuyển đến chỗ trống rộng ít nhất hai thùng. Bên trái thùng đầu tiên có các chỗ trống có thể sử dụng khi cần trong quá trình sắp xếp.

Khi bắt đầu sắp xếp, vị trí các thùng được đánh số từ $1$ (ban đầu chứa thùng B ngoài cùng bên trái) đến $2n$ (ban đầu chứa thùng A ngoài cùng bên phải). Có $2n$ vị trí ban đầu trống ở bên trái, đánh số từ $0$ đến $-2n+1$, như Hình A.1 với $n=4$.

problem_7665_113d453aa04e914f3a265312f8ef181c.png

Hình A.1: Cấu hình ban đầu của các thùng và vị trí trống với $n=4$

Cho $n$, hãy tìm một dãy di chuyển ngắn nhất để mọi thùng A nằm bên trái mọi thùng B. Khi kết thúc, thùng A ngoài cùng bên trái có thể nằm ở vị trí khác $1$, nhưng các thùng phải nằm sát nhau trên một dãy $2n$ vị trí liên tiếp.

Dữ liệu vào

Dữ liệu vào gồm một bộ kiểm thử duy nhất, chứa số nguyên $n$ ($3 \le n \le 100$).

Dữ liệu ra

In một dãy di chuyển ngắn nhất để sắp xếp đúng các thùng. Mỗi lần di chuyển có dạng “$f$ to $t$”, trong đó các số nguyên $f$ và $t$ biểu thị chuyển các thùng ở vị trí $f$ và $f+1$ đến vị trí $t$ và $t+1$. Nếu có nhiều lời giải, in bất kỳ lời giải nào.

Ví dụ

Dữ liệu vào 1

5

Dữ liệu ra 1

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

Dữ liệu vào 2

8

Dữ liệu ra 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.