Tesla

Đề bài

Mô tả

Bãi đỗ xe được mô hình hoá bằng một bảng chữ nhật gồm 4 hàng và n cột. Mỗi ô bảng chứa được tối đa một chiếc xe. Có k chiếc xe (đánh số từ 1 đến k) đang đứng ở các ô của hàng 2hàng 3. Mỗi xe được gán một ô đỗ riêng nằm ở hàng 1 hoặc hàng 4.

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 1 hoặc hàng 4 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 20000 bước di chuyển. Hãy xác định xem có thể đưa toàn bộ k 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 nk (1n50, 1k2n) — số cột và số xe.
  • Bốn dòng tiếp theo, mỗi dòng chứa n số nguyên trong đoạn [0,k] mô tả trạng thái ban đầu của bãi đỗ. Các hàng được đánh số từ 1 đến 4 theo thứ tự từ trên xuống dưới.
    • Ở hàng 1 và hàng 4, giá trị x0 nghĩa là ô đó là ô đỗ dành cho xe x; giá trị 0 nghĩa là không có ô đỗ ở vị trí này (không xe nào được phép đi vào).
    • Ở hàng 2 và hàng 3, giá trị x0 là vị trí ban đầu của xe x; giá trị 0 nghĩa là ô trống.

Mỗi số x từ 1 đến k xuất hiện đúng một lần trong hai hàng 2, 3 và đúng một lần trong hai hàng 1, 4.

Dữ liệu ra

Nếu không thể đưa toàn bộ xe về đúng vị trí trong không quá 20000 bước, in ra số nguyên 1.

Ngược lại, in ra một số nguyên m (0m20000) là số bước di chuyển. Trong m dòng tiếp theo, mỗi dòng chứa ba số nguyên i, r, c mô tả việc di chuyển xe i sang ô ở hàng r, cột c. 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á 20000 bước đều được chấp nhận.

Ràng buộc

  • 1n50
  • 1k2n
  • Số bước di chuyển tối đa: 20000.

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 1,2,4 đã nằm ngay dưới ô đỗ của mình nên được đưa thẳng lên. Xe 3 ở hàng 3 cột 4 trùng cột với ô đỗ ở hàng 4, đi thẳng xuống. Xe 5 ở hàng 3 cột 1 cần đỗ ở (4,2), được dịch sang ô (3,2) rồi đi xuống.
1 2
1
2
1
2
-1 Bãi chỉ có 1 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

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0