Biến đổi bảng nhị phân

Xem dạng PDF

Gửi bài giải

Điểm: 40,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong một buổi tối, cô bé ~Lona~ nảy ra một ý tưởng thú vị khi đang nhìn vào một bảng nhị phân trên giấy: "Điều gì sẽ xảy ra nếu mình có thể biến bảng này thành một bảng khác, gần giống thôi, bằng những thao tác đơn giản?"

Cho hai bảng nhị phân ~A~ và ~B~ có kích thước ~n \times n~. Mỗi ô của bảng chứa giá trị ~0~ hoặc ~1~. Cô bé Lona có thể thực hiện hai loại thao tác sau để biến đổi bảng ~A~:

  1. Hoán đổi hai cột liền kề:
    Thao tác 1 c sẽ đổi chỗ cột thứ ~c~ và cột thứ ~c+1~ của bảng ~A~.
  2. Đảo giá trị cả hàng:
    Thao tác 2 r sẽ đảo tất cả giá trị trên hàng thứ ~r~ (0 thành 1 và 1 thành 0).

Lona muốn biến bảng ~A~ thành một bảng ~C~ sao cho ~C~ khác bảng ~B~ không quá 1 ô.

Nhiệm vụ của bạn là tìm số thao tác ít nhất để thực hiện điều đó. Nếu không thể đạt được mục tiêu, hãy in ra ~-1~.


INPUT
  • Dòng đầu tiên chứa số nguyên dương ~n~ — kích thước bảng. (~1 \le n \le 100~)
  • ~n~ dòng tiếp theo, mỗi dòng gồm ~n~ số nguyên ~0~ hoặc ~1~ — mô tả bảng ~A~.
  • ~n~ dòng tiếp theo, mỗi dòng gồm ~n~ số nguyên ~0~ hoặc ~1~ — mô tả bảng ~B~.

OUTPUT
  • Nếu không có cách nào để biến bảng ~A~ thành bảng ~C~ sao cho bảng ~C~ khác bảng ~B~ không quá một ô, in ra -1.
  • Ngược lại, in ra số nguyên ~s~ là số thao tác cần thực hiện.
  • ~s~ dòng tiếp theo, mỗi dòng gồm hai số nguyên ~t~ và ~x~:
    • Nếu ~t = 1~, thao tác đổi chỗ cột ~x~ và ~x+1~.
    • Nếu ~t = 2~, thao tác đảo toàn bộ hàng ~x~.

SAMPLE INPUT 1
3
0 0 1
1 0 0
0 0 1
1 0 0
0 0 1
1 0 0
SAMPLE OUTPUT 1
3
1 2
1 1
1 2
SAMPLE INPUT 2
7
1 0 1 1 0 0 0
0 1 0 1 1 0 0
1 1 1 0 0 1 1
1 0 1 0 1 1 1
1 1 1 0 1 0 1
0 0 0 1 0 1 1
1 1 0 0 1 0 0
0 0 0 0 1 1 1
1 1 0 0 1 0 0
1 0 1 1 0 1 1
0 1 1 1 0 1 1
1 1 1 0 0 1 1
0 0 1 1 1 0 0
1 1 0 0 0 0 1
SAMPLE OUTPUT 2
14
1 1
1 4
1 3
1 2
1 6
1 5
1 4
1 3
1 6
1 5
1 4
1 6
1 5
1 6
SUBTASKS
Subtask Điểm Ràng buộc
1 25% ~n \le 4~
2 25% ~n \le 10~
3 25% ~n \le 20~
4 25% Không có ràng buộc gì thêm

Bình luận

Hãy đọc nội quy trước khi bình luận.


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