Dinamik Meşə
Sizdən 3 növ sorğunu emal etməyi öyrənmək tələb olunur:
Qrafa kənar əlavə etmək (link).
Qrafdan kənar silmək (cut).
İki zirvə a və b arasında yolun uzunluğunu qaytarmaq (əgər onlar müxtəlif əlaqə komponentlərindədirsə, -1) (get).
Başlanğıcda qraf boşdur və N zirvədən ibarətdir, heç bir kənar yoxdur. Hər zaman qrafın meşə olduğu təmin edilir. Kənar əlavə edərkən, onun artıq qrafda olmadığına əmin olunmalıdır. Kənar silərkən, onun əvvəllər əlavə edildiyinə əmin olunmalıdır.
Giriş verilənləri
N və M (1 ≤ N ≤ 10^5+1, 1 ≤ M ≤ 10^5) — zirvələrin və sorğuların sayı. Sonra M sətir gəlir, hər sətirdə bir komanda (link, cut və ya get) və 1-dən N-ə qədər olan iki ədəd — sorğudakı zirvələrin nömrələri.
Çıxış verilənləri
Hər get sorğusu üçün çıxış faylına bir ədəd yazın — zirvələr arasındakı məsafə və ya əgər onlar müxtəlif əlaqə komponentlərindədirsə, -1.