SQRT Contest #04 - Bảng nhị phân

Xem dạng PDF

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

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.