atcoder#AGC041E. [AGC041E] Balancing Network

[AGC041E] Balancing Network

配点 : 16001600

問題文

平衡ネットワーク とは、左から右へと延びる NN 本のケーブルと、それぞれ 22 本のケーブルを繋ぐ MM 個の 平衡器 からなる抽象機械です。 ケーブルには上から順に 11 から NN までの番号が、平衡器には左から順に 11 から MM までの番号がついています。平衡器 ii はケーブル xi,yix_i, y_i (xi<yix_i < y_i) を繋ぎます。

pic1-small-2acea94b.png

各平衡器は または のいずれかの状態に設定します。

11 枚のコインが、いずれかのケーブルに沿ってどの平衡器よりも左に位置する点から右へと流れ始めるとします。 これから、このコインはすべての平衡器のもとをちょうど一度ずつ通過します。 コインが平衡器 ii の位置に来たとき、次のことが起こります。

  • コインがケーブル xix_i に沿って流れており、かつ平衡器 ii の状態が下であるなら、コインはケーブル yiy_i に移ってから再び右へと流れる。
  • コインがケーブル yiy_i に沿って流れており、かつ平衡器 ii の状態が上であるなら、コインはケーブル xix_i に移ってから再び右へと流れる。
  • 上記のいずれでもないなら、コインが別のケーブルに移ることはない。

平衡ネットワークの状態とは、すべての平衡器の状態を表す長さ MM の文字列です。 この文字列の ii 文字目は、平衡器 ii の状態が上なら ^、下なら v です。

平衡ネットワークの状態が 均一的 であるとは、あるケーブル ww が存在して、コインがどのケーブルから流れ始めたとしてもケーブル ww に行き着き、これに沿って永遠に流れることをいいます。それ以外の場合、平衡ネットワークの状態は 非均一的 であるといわれます。

整数 TT (1T21 \le T \le 2) が与えられます。次の問いに答えてください。

  • T=1T = 1 の場合は、このネットワークの均一的な状態をいずれかひとつ求めるか、そのような状態が存在しないことを検出せよ。
  • T=2T = 2 の場合は、このネットワークの非均一的な状態をいずれかひとつ求めるか、そのような状態が存在しないことを検出せよ。

なお、いずれか 11 種類の問いにのみ正しく答えると部分点が得られます。

制約

  • 2N500002 \leq N \leq 50000
  • 1M1000001 \leq M \leq 100000
  • 1T21 \leq T \leq 2
  • 1xi<yiN1 \leq x_i < y_i \leq N
  • 入力中のすべての値は整数である。

部分点

  • T=1T = 1 であるようなテストケースすべてに正解すると、800800 点が与えられる。
  • T=2T = 2 であるようなテストケースすべてに正解すると、800800 点が与えられる。

入力

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

NN MM TT

x1x_1 y1y_1

x2x_2 y2y_2

::

xMx_M yMy_M

出力

T=1T = 1 の場合は与えられたネットワークの均一的な状態をいずれかひとつ出力し、T=2T = 2 の場合は非均一的な状態をいずれかひとつ出力せよ。ただし、そのような状態が存在しないなら -1 と出力せよ。

4 5 1
1 3
2 4
1 2
3 4
2 3
^^^^^

どのケーブルから流れ始めてもコインはケーブル 11 に行き着くため、この状態は均一的です。

pic2-small-2acea94b.png

4 5 2
1 3
2 4
1 2
3 4
2 3
v^^^^

流れ始めるケーブル次第で、コインはケーブル 11 にもケーブル 22 にも行き着くことがあるため、この状態は非均一的です。

pic3final-small-2acea94b.png

3 1 1
1 2
-1

均一的な状態が存在しません。

2 1 2
1 2
-1

非均一的な状態が存在しません。