Loading [MathJax]/jax/output/CommonHTML/jax.js

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

問題文

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

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

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

入力

n
a0an
b0bn

入力の制約

1n50
0ain
0bin

出力

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

YES
e11 e12e1n
e21 e22e2n

en1 en2enn

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

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