Nguồn: Big-O
Cho một ma trận vuông A kích thước N∗N, ban đầu tất cả các phần tử đều bằng 0. Bạn muốn biến đổi ma trận này thành ma trận B cũng có kích thước N∗N. Bạn được phép thực hiện thao tác sau:
P kích thước N.X bất kỳ.i (1≤i≤N), cộng X vào Ai,Pi.Một hoán vị kích thước N được định nghĩa là một dãy các số nguyên dương có giá trị từ 1 đến N, trong đó không có hai phần tử nào có cùng giá trị.
Bạn được cho ma trận B. Bạn được phép thực hiện tối đa 2500 thao tác. Hãy xác định xem bạn có thể biến đổi ma trận A thành ma trận B hay không? Nếu có thể, hãy chỉ ra một phương án thực hiện.
Đầu vào:
T là số lượng test case.N là kích thước của ma trận.N dòng tiếp theo, dòng thứ i chứa N số nguyên lần lượt là các phần tử trên dòng thứ i của ma trận B.Dữ liệu đảm bảo trong ma trận B có ít nhất một phần tử lớn hơn 0.
Đầu ra: Với mỗi test case:
B, in ra một số duy nhất là -1.K (0≤K≤2500) là số lượng thao tác. Trong K dòng tiếp theo, mỗi dòng in ra N+1 số nguyên dương mô tả các thao tác theo thứ tự như sau:
X của thao tác (1≤X≤109).N số nguyên dương tiếp theo lần lượt mô tả hoán vị P.Nếu có nhiều phương án thỏa mãn, bạn có thể in ra phương án bất kỳ.
Ví dụ 1:
Đầu vào:
3
4
1 1 1 1
0 2 0 2
2 0 1 1
1 1 2 0
3
1 2 3
4 5 6
7 8 9
1
314159
Đầu ra:
4
1 2 4 3 1
1 3 4 1 2
1 4 2 1 3
1 1 2 4 3
-1
1
314159 1