難易度評価

難易度を1〜10段階で評価できます。投票はあとから変更・取り消しできます。

難易度(投票) 未投票 (0票)

投票の分布

まだ投票はありません。

  1. Lv.10票
  2. Lv.20票
  3. Lv.30票
  4. Lv.40票
  5. Lv.50票
  6. Lv.60票
  7. Lv.70票
  8. Lv.80票
  9. Lv.90票
  10. Lv.100票

難易度の目安を見る ↗

ログインして難易度を投票

外部サイトへ移動します

リンク先の URL を確認してから開いてください。

別タブで開く

Flipping Puzzle

作成者 loop0919

難易度(作成者設定) Lv.6

難易度(投票) 未投票 (0票)

実行時間制限
4 秒
メモリ制限
512 MiB

問題文

縦 HH 行 横 WW 列のグリッドがあります。上から ii 番目、左から jj 番目のマスを (i,j)(i, j) と表します。
NN 個のマスの色は黒であり、それぞれ (rk,ck) (1≤k≤N)(r_k, c_k) ~ (1 \le k \le N) です。それ以外のマスの色は白です。

あなたは以下の操作を 00 回以上の好きな回数行うことができます。

  • グリッド上に含まれる 2×22 \times 2 の矩形領域を選ぶ。その中に含まれる 44 つのマスの色を反転する。

色を反転するとは、そのマスの色が黒であるとき白に、そうでないとき黒に色を変更することを表します。

グリッドのすべてのマスの色を白にすることが可能か判定し、可能ならば必要な操作回数の最小値を求めてください。

制約

  • 0≤N≤5×1050 \le N \le 5 \times 10^5
  • 2≤H,W≤5×1052 \le H, W \le 5 \times 10^5
  • 1≤rk≤H1 \le r_k \le H
  • 1≤ck≤W1 \le c_k \le W
  • (rk,ck)≠(rk′,ck′)(k≠k′)(r_k, c_k) \ne (r_{k'}, c_{k'}) \enspace (k \ne k')
  • 入力される値はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NHWN \quad H \quad W r1c1r_1 \quad c_1 r2c2r_2 \quad c_2 ⋮\vdots rNcNr_N \quad c_N

出力

グリッドのすべてのマスの色を白にすることが不可能であるとき -1 を出力せよ。
可能であるとき、必要な操作回数の最小値を出力せよ。

サンプル 1

入力

4 3 2
1 1
1 2
3 1
3 2

出力

2

サンプル 2

入力

3 5 5
2 4
5 3
2 3

出力

-1

サンプル 3

入力

12 60 48
52 19
59 45
34 19
1 45
52 36
59 22
8 19
1 19
34 45
8 36
52 22
52 45

出力

883