#jag2017summerday1i. [jag2017summer_day1_i]ルーク
[jag2017summer_day1_i]ルーク
問題文
辺が マスのチェス盤があり、その上にルークが 置かれています。 番目のルークは 行目 列目のマスに置かれています。
それを見た黒猫のスヌケ君は出来るだけ少ない個数のルークを取り除くことによって、どの行や列にもルークが高々 個しかないようにしたいと考えました。 スヌケ君はいくつのルークを取り除けばいいでしょうか? また、その個数を達成するために必ず取り除かなければいけないルーク、絶対に取り除いてはいけないルークがどれなのかも求めてください。
制約
- 同じマスに複数のルークが置かれていることはない
入力
入力は以下の形式で標準入力から与えられる。
出力
行目には取り除くルークの最小個数を出力せよ。 さらに、続く 行のうち 行目には、 番目のルークに関する以下のような値を出力せよ。
- 番目のルークを必ず取り除かなければならない場合:
- 番目のルークを絶対に取り除いてはいけない場合:
- それ以外の場合:
入力例 1
6
1 1
1 3
2 1
2 2
2 3
3 2
出力例 1
3
0
0
0
1
0
-1
取り除く個数が最小になるようなルークの取り除き方は下図のような 通りが考えられますが、 番目のルークはいずれにおいても取り除かれており、 番目のルークはいずれにおいても取り除かれていません。
入力例 2
9
1 2
2 2
2 1
3 3
4 6
4 5
4 4
5 4
6 4
出力例 2
4
-1
1
-1
-1
0
0
1
0
0