Tıxanma aşkarlayıcı#11348

Tıxanma aşkarlayıcı

4 saniyə
512 meqabayt
Çox çətin

Şəhər məclisi, xüsusilə dalanlarda yol nişanlarının yerləşdirilməsini təkmilləşdirmək qərarına gəlib. Sizə yol xəritəsi təqdim edilib və dalanları göstərmək üçün nişanların harada yerləşdiriləcəyini müəyyən etməlisiniz. Məqsəd mümkün qədər az sayda nişan istifadə etməkdir.

Yol xəritəsi, iki tərəfli hərəkət olan küçələrlə birləşən kəsişmələr dəstini təmsil edir. Aşağıdakı qayda dalan nişanlarının tam yerləşdirilməsini təsvir edir. küçəsini, yerini başqa bir yerə birləşdirən küçə kimi nəzərdən keçirin. Əgər -dən -ə daxil olduqdan sonra, dönmə etmədən -ə qayıtmaq mümkün deyilsə, -ə giriş dalan olur. Dönmə - dərhal istiqaməti dəyişdirən dərəcəlik dönmədir.

Xərcləri azaltmaq üçün artıq dalan nişanlarını quraşdırmamağa qərar verdiniz, aşağıdakı qayda ilə göstərildiyi kimi. -girişində dalan nişanı olan küçəsini və -girişində dalan nişanı olan başqa küçəsini nəzərdən keçirin. Əgər -dən -ə daxil olduqdan sonra dönmə etmədən -ə çatmaq və -ə daxil olmaq mümkündürsə, küçəsinin -girişindəki dalan nişanı artıqdır. Şəkil E.1-dəki nümunələrə baxın.

Şəkil E.1: Artıq olmayan dalan nişanlarının yerləşdirilməsini göstərən nümunə ilə giriş məlumatlarının təsviri.

Giriş

Birinci sətir və tam ədədlərini ehtiva edir, burada n~(1 \le n \le 5 \cdot 10^5) - kəsişmələrin sayı, m~(0 \le m \le 5 \cdot 10^5) - küçələrin sayıdır. Növbəti sətirin hər biri və w~(1 \le v < w \le n) tam ədədlərini ehtiva edir, bu da iki tərəfli hərəkət olan küçənin və kəsişmələrini birləşdirdiyini göstərir. Giriş məlumatlarında bütün küçələr fərqlidir.

Çıxış

Birinci sətirdə quraşdırılmış dalan nişanlarının sayı -ni göstərin. Növbəti sətirin hər birində və tam ədədlərini göstərin, bu da kəsişməsini və kəsişmələrini birləşdirən küçəyə girişdə dalan nişanı quraşdırılmalı olduğunu göstərir. Dalan nişanlarını təsvir edən sətirlər -nin artan sırasına görə, bərabər qiymətlərdə isə -nin artan sırasına görə sıralanmalıdır.

Nümunələr

Nümunə 1

Loading
Loading

Nümunə 2

Loading
Loading