eolymp
bolt
Try our new interface for solving problems
Məsələlər

Körpülər: son döyüş

Körpülər: son döyüş

\textit{Sizin diplom işinizdə praktik tətbiq varmı?} _____________________________________________________ Geniş yayılmış sual. \textbf{Əfsanə} Seryoja adlı oğlan artıq demək olar ki, diplom işini tamamlamışdır. Diplom mövzusu dekabrdan bu yana dəyişməmişdir. "Dynamic 2-Edge-Connectivity Problem". Alqoritm tapılmış, testdən keçirilmiş,\textbf{ O(K log K)} qiymətləndirilməsi isbat edilmişdir. Yalnız "praktik tətbiq" bölməsini hazırlamaq qalmışdır. Lakin "Dynamic 2-Edge-Connectivity Problem" məsələsində praktik tətbiq nə ola bilər? Sadə sual deyil. O cari məsələdə heç də asan deyildir. Lakin diplomu müdafiə etmək lazımdır, buna görə də təcili nə isə etmək lazımdır. Beləliklə, ilk praktik tətbiq: Bu mövzuda müsabiqəyə məsələ vermək olar! \textbf{Məsələ} Təpələrinin sayı \textbf{10^5-}i aşmayan istiqamətlənməmiş qraf verilir. Başlanğıcda qrafın tilləri yoxdur. Sizə \textbf{ADD x y} və \textbf{DEL x y} \textbf{- x}-dən \textbf{y}-ə til əlavə etmək və ləğv etmək şəklində sorğuları emal etmək lazımdır. Hər zaman anında bilmək lazımdır, \textit{\textbf{qrafda nə qədər körpü var}}. Heç bir zaman anında tam bölünən til və dövr yoxdur. Əgər "tili silmək" əmri daxil olursa, demək bu til qrafda mütləq var. \textbf{Məsələnin həlli} Diplom işi elə bir şeydir ki, onu sadəcə \textbf{5} saata yazıb bitirə bilməzsən. Buna görə də Sizə \textbf{5} yardım verilir: \begin{enumerate} \item Til əlavə etmək və tili ləğv etmək -- tili müəyyən zaman intervalında "canlı" etmək. \item "Böl və Hakim ol" metodundan istifadə edin. \item İkiliəlaqəlilik komponentini ixtisar edin. \item Hətta ikiliəlaqəlilik komponenti artıq ixtisar edilmiş olsa da, əgər sorğular az olarsa, qrafı hələ də qısaltmaq olar. \item \textbf{O(K log K)} həlli mümkündür. \end{enumerate} \InputFile İlk sətirdə təpələrin və sorğuların sayını ifadə edən iki tam \textbf{N} və \textbf{K} (\textbf{1} ≤ \textbf{N }≤ \textbf{10^5}, \textbf{1} ≤ \textbf{K} ≤ \textbf{10^5}) ədədləri verilir. Növbəti \textbf{K} sətrinin hər birində tək sətirdə sorğular verilir. Hər bir sorğu tilin əlavə edilməsi və ləğv edilməsi üçün "\textbf{ADD}" və ya "\textbf{DEL}" sözü ilə başlayır. Bu sözdən sonra tili ifadə edən iki tam \textbf{a} və \textbf{b (1} ≤ \textbf{a}, \textbf{b} ≤ \textbf{N}, \textbf{a} ≠ \textbf{b}) ədədləri verilir. \OutputFile Hər bir sorğudan sonra qrafdakı körpülərin sayını ifadə edən yeganə ədədi verməli.
Zaman məhdudiyyəti 2 saniyə
Yaddaşı istafadə məhdudiyyəti 256 MiB
Giriş verilənləri #1
4 8
ADD 1 2
ADD 2 3
ADD 1 3
DEL 2 3
DEL 1 2
ADD 2 4
ADD 1 4
ADD 2 3
Çıxış verilənləri #1
1
2
0
2
1
2
3
0