Gửi bài giải
Điểm:
27,00 (OI)
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
1G
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch
Cho hai dãy số nguyên không âm ~a_1, a_2, ..., a_n~ và ~b_1, b_2, ..., b_m~. Nhiệm vụ của bạn là tạo ra một bảng ~c~ kích thước ~n \times m~, với ô ở hàng ~i~ cột ~j~ có giá trị ~0 \le c_{ij} \le 1~ sao cho bảng có đúng ~a_i~ số 1 ở hàng ~i~ và ~b_j~ số 1 ở cột ~j~. Nếu có nhiều bảng như vậy bạn cần tìm bảng có thứ tự từ điển nhỏ nhất.
Dữ liệu
- Dòng đầu tiên gồm một số nguyên ~T~ là số bộ dữ liệu ~(1 \le T \le 5)~.
- Tiếp theo là ~T~ nhóm dòng, mỗi nhóm dòng có dạng như sau:
- Dòng đầu tiên gồm hai số nguyên dương ~n, m~ ~(1 \le n, m \le 300)~.
- Dòng tiếp theo gồm ~n~ số nguyên không âm ~a_1, a_2, ..., a_n~ ~(0 \le a_i \le m)~.
- Dòng tiếp theo gồm ~m~ số nguyên không âm ~b_1, b_2, ..., b_m~ ~(0 \le b_i \le n)~.
- Dữ liệu đầu vào đảm bảo ~a_1 + a_2 + ... + a_n = b_1 + b_2 + ... + b_m~.
Kết quả
- Với mỗi bộ dữ liệu, in ra:
- ~-1~ nếu không tồn tại kết quả thỏa mãn.
- ~n~ dòng, mỗi dòng gồm một xâu nhị phân độ dài ~m~. Ký tự thứ ~j~ ở hàng ~i~ là ~0~ khi và chỉ khi ~c_{ij} = 0~ và bằng ~1~ trong trường hợp ngược lại. Nếu tồn tại nhiều bảng thỏa mãn, in ra bảng có thứ tự từ điển nhỏ nhất (xâu nhị phân được tạo thành bằng cách nối ~n~ xâu như trên lại với nhau có thứ tự từ điển nhỏ nhất).
Subtask
Điểm | Ràng buộc bổ sung |
---|---|
~20~ | ~n, m \le 5~ |
~15~ | ~n \le 10, m \le 5~ |
~15~ | ~n = 2~ |
~15~ | ~n, m \le 70~ |
~15~ | ~n, m \le 120~ |
~10~ | ~n, m \le 200~ |
~10~ | Không có giới hạn gì thêm |
Ví dụ
Dữ liệu
1
5 5
0 1 3 2 0
1 2 2 0 1
Kết quả
00000
00001
11100
01100
00000
Bình luận