Lost Graph

Time Limit : 2 sec, Memory Limit : 262144 KB

C: 失われしグラフ / Lost Graph

問題文

あなたと AOR イカちゃんは競技プログラミングのグラフ問題の準備をしている。 入力ケースの生成は AOR イカちゃんの仕事である。 その問題の入力ケースは $N$ 頂点の有向グラフである。 頂点には $1$ から $N$ までの番号が付いている。 辺には自己ループが含まれるかもしれないが、多重辺は含まれない。

ところが、AOR イカちゃんは突然音信不通となってしまい、元のグラフが手に入らなくなってしまった。残っているのは次の情報だけである。

  • 入次数が $i$ の頂点の数は $a_i$ 個である。つまり、 $i$ を終点とする頂点の数は $a_i$ 個である。
  • 出次数が $i$ の頂点の数は $b_i$ 個である。つまり、 $i$ を始点とする頂点の数は $b_i$ 個である。

残された情報と矛盾しない有向グラフは存在するだろうか。 それを判定し、存在するなら YES と出力した後矛盾しない有向グラフを 1 つ出力せよ。 複数ある場合はどれを出力してもよい。存在しないなら NO と出力せよ。

入力

$n$
$a_0 \cdots a_n$
$b_0 \cdots b_n$

入力の制約

$1 \leq n \leq 50$
$0 \leq a_i \leq n$
$0 \leq b_i \leq n$

出力

条件を満たすグラフが存在する場合は以下の形式で出力せよ。$e_{ij}$ は、 $i$ から $j$ への有向辺が存在するならば 1 、しないなら 0 とせよ。 行末に空白を出力しないように注意せよ。

YES
$e_{11} \ e_{12} \cdots e_{1n}$
$e_{21} \ e_{22} \cdots e_{2n}$
$\vdots$
$e_{n1} \ e_{n2} \cdots e_{nn}$

しない場合は以下のとおりに出力せよ。

NO

サンプル

サンプル入力1

3
1 2 0 0
1 2 0 0

サンプル出力1

YES
0 1 0
0 0 1
0 0 0

サンプル入力2

1
1 0
1 0

サンプル出力2

YES
0

サンプル入力3

2
0 2 0
0 2 0

サンプル出力3

YES
0 1
1 0

サンプル入力4

4
1 3 0 0 0
3 0 0 1 0

サンプル出力4

YES
0 1 1 1
0 0 0 0
0 0 0 0
0 0 0 0

サンプル入力5

1
1 1
0 0

サンプル出力5

NO

Note

Commentary
 
Source: Aizu Competitive Programming Camp 2016 Day1 , Japan, 2016-09-17