시간 제한
메모리 제한
시간 제한
2초
메모리 제한
128 MB
0과 1로만 이루어진 n x n 행렬이 있다. 실제 행렬은 사라졌지만, 각 행과 각 열에 들어 있는 1의 개수는 알고 있다.
아래와 같은 행렬을 생각해 보자.
| 1 | 1 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 0 |
이 행렬에서는 1행에 1이 2개, 2행에 3개, 3행에 1개, 4행에 1개 있다. 또한 1열, 2열, 3열에는 각각 1이 2개씩 있고, 4열에는 1이 1개 있다.
행별 1의 개수와 열별 1의 개수가 주어질 때, 이 조건을 모두 만족하는 원래 행렬을 하나 만들어라.
첫째 줄에 정수 n이 주어진다. (1 <= n <= 500)
둘째 줄에는 1행부터 n행까지 각 행에 들어 있는 1의 개수 n개가 차례로 주어진다.
셋째 줄에는 1열부터 n열까지 각 열에 들어 있는 1의 개수 n개가 차례로 주어진다.
각 행 또는 열에 들어 있는 1의 개수는 0 이상 n 이하의 정수이다.
조건을 만족하는 행렬을 만들 수 있으면 첫째 줄에 1을 출력한다. 이어서 n개의 줄에 행렬의 각 행을 0과 1로 붙여서 출력한다.
조건을 만족하는 행렬이 없으면 첫째 줄에 -1을 출력한다.
가능한 행렬이 여러 개라면 그중 아무거나 하나를 출력해도 된다.