Lấp đầy ô vuông
Đề bài
Mô tả
Cho hai ma trận và , mỗi ma trận có đúng hàng và cột. Mỗi phần tử của là hoặc ; ban đầu mọi phần tử của đều bằng .
Bạn được phép thực hiện một số thao tác trên ma trận . Mỗi thao tác, bạn chọn một ma trận con kích thước của và gán tất cả phần tử trong đó bằng . Cụ thể, bạn chọn hai số nguyên và thỏa và , rồi gán đều bằng .
Mục tiêu là làm cho ma trận trùng với ma trận (mọi phần tử tương ứng bằng nhau).
Hãy xác định điều đó có khả thi hay không. Nếu có, hãy đưa ra một dãy thao tác biến thành . Không cần tối thiểu hóa số thao tác, nhưng số thao tác phải thỏa .
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và .
- dòng tiếp theo, mỗi dòng chứa số nguyên; số thứ trên dòng thứ là (bằng hoặc ).
Dữ liệu ra
- Nếu không thể làm cho trùng , in ra một số nguyên .
- Ngược lại, dòng đầu in số nguyên — số thao tác; sau đó dòng, mỗi dòng chứa hai số nguyên và mô tả một thao tác.
Nếu có nhiều đáp án, in ra bất kỳ đáp án hợp lệ nào.
Ràng buộc
- Mỗi
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 3 1 1 1 1 1 1 0 1 1 |
3 1 1 1 2 2 2 |
Ba thao tác tại các góc trên-trái , , phủ đúng các ô bằng của . Đây là một trong nhiều đáp án hợp lệ. |
| 3 3 1 0 1 1 0 1 0 0 0 |
-1 | Không có ma trận con toàn số nào trong , nên không thể tạo bất kỳ ô nào — trong khi có ô bằng . Vô nghiệm. |
| 3 2 0 0 0 0 0 0 |
0 | toàn số , không cần thao tác nào. |
Bình luận