Boomerang nảy
Đề bài
Mô tả
Cho một lưới ô vuông. Hàng được đánh số từ đến tính từ trên xuống dưới, cột được đánh số từ đến tính từ trái sang phải. Trên lưới có một số mục tiêu, mỗi hàng và mỗi cột chứa không quá mục tiêu.
Với mỗi cột, ta thả một quả boomerang từ phía dưới lưới (ngay dưới cột đó) bay thẳng lên trên. Khi boomerang đập vào một mục tiêu, nó nảy ra và quay độ sang phải, rồi tiếp tục bay theo hướng mới cho đến khi đập trúng mục tiêu khác hoặc bay ra khỏi lưới. Boomerang có thể đập trúng nhiều mục tiêu và chỉ dừng lại khi ra khỏi lưới.
Boomerang ở cột đập trúng đúng mục tiêu trước khi ra khỏi lưới. Biết rằng .
Tuy nhiên, vị trí ban đầu của các mục tiêu đã bị mất. Hãy dựng lại một cấu hình mục tiêu hợp lệ phù hợp với số lần đập của mỗi cột, hoặc thông báo rằng không tồn tại cấu hình nào. Nếu có nhiều cấu hình hợp lệ, in ra bất kỳ cấu hình nào.
Dữ liệu vào
- Dòng đầu chứa số nguyên ().
- Dòng thứ hai chứa số nguyên ().
Dữ liệu ra
Nếu không tồn tại cấu hình hợp lệ, in .
Ngược lại, dòng đầu in một số nguyên () là số mục tiêu trong cấu hình.
Sau đó in dòng, mỗi dòng chứa hai số nguyên và () cho biết mục tiêu nằm ở hàng và cột . Tất cả các mục tiêu phải khác nhau. Mỗi hàng và mỗi cột trong cấu hình chứa không quá mục tiêu.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 1 0 |
0 | , — không cần đặt mục tiêu nào. |
| 6 2 0 3 0 1 1 |
5 5 1 3 3 3 6 5 5 6 6 |
Boomerang cột : đập → sang phải, đập → xuống dưới, ra khỏi lưới. Tổng lần. Boomerang cột : đập → đập → đập → ra khỏi lưới. Tổng lần. Cột đập , cột đập , mỗi cột lần. |
| 6 3 2 2 2 1 1 |
-1 | Không tồn tại cấu hình thỏa mãn. |
Bình luận