Tesla
Đề bài
Mô tả
Bãi đỗ xe được mô hình hoá bằng một bảng chữ nhật gồm hàng và cột. Mỗi ô bảng chứa được tối đa một chiếc xe. Có chiếc xe (đánh số từ đến ) đang đứng ở các ô của hàng và hàng . Mỗi xe được gán một ô đỗ riêng nằm ở hàng hoặc hàng .
Tại mỗi bước, bạn được phép di chuyển đúng một xe sang ô trống kề cạnh (chung cạnh, không tính chung đỉnh). Tuy nhiên có hai quy tắc bắt buộc:
- Một xe chỉ được di chuyển vào ô của hàng hoặc hàng nếu ô đó chính là ô đỗ đã được gán cho xe đó. Sau khi xe đã vào ô đỗ của mình, xe đó không được di chuyển nữa.
- Hai xe không được đứng cùng một ô tại cùng một thời điểm.
Bạn được phép thực hiện tối đa bước di chuyển. Hãy xác định xem có thể đưa toàn bộ xe về đúng ô đỗ của chúng hay không, nếu có hãy đưa ra một dãy nước đi hợp lệ.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và (, ) — số cột và số xe.
- Bốn dòng tiếp theo, mỗi dòng chứa số nguyên trong đoạn mô tả trạng thái ban đầu của bãi đỗ. Các hàng được đánh số từ đến theo thứ tự từ trên xuống dưới.
- Ở hàng và hàng , giá trị nghĩa là ô đó là ô đỗ dành cho xe ; giá trị nghĩa là không có ô đỗ ở vị trí này (không xe nào được phép đi vào).
- Ở hàng và hàng , giá trị là vị trí ban đầu của xe ; giá trị nghĩa là ô trống.
Mỗi số từ đến xuất hiện đúng một lần trong hai hàng , và đúng một lần trong hai hàng , .
Dữ liệu ra
Nếu không thể đưa toàn bộ xe về đúng vị trí trong không quá bước, in ra số nguyên .
Ngược lại, in ra một số nguyên () là số bước di chuyển. Trong dòng tiếp theo, mỗi dòng chứa ba số nguyên , , mô tả việc di chuyển xe sang ô ở hàng , cột . Bài có nhiều đáp án và bất kỳ dãy nước đi hợp lệ nào không vượt quá bước đều được chấp nhận.
Ràng buộc
- Số bước di chuyển tối đa: .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 5 1 2 0 4 1 2 0 4 5 0 0 3 0 5 0 3 |
6 1 1 1 2 1 2 4 1 4 3 4 4 5 3 2 5 4 2 |
Bốn xe đã nằm ngay dưới ô đỗ của mình nên được đưa thẳng lên. Xe ở hàng cột trùng cột với ô đỗ ở hàng , đi thẳng xuống. Xe ở hàng cột cần đỗ ở , được dịch sang ô rồi đi xuống. |
| 1 2 1 2 1 2 |
-1 | Bãi chỉ có cột, hai xe đứng sai thứ tự và không có ô trống nào để xoay, nên không xe nào di chuyển được. |
| 1 2 1 1 2 2 |
2 1 1 1 2 4 1 |
Mỗi xe đã đứng đúng cột của ô đỗ riêng, chỉ cần đi thẳng. |
Bình luận