Permutasiyaların parçalanması#4943

Permutasiyaların parçalanması

1 saniyə
64 meqabayt
Çox çətin

Bu məsələdə elementdən ibarət bir permutasiya, uzunluğu olan və -dan n-1-ə qədər olan hər bir ədədin dəqiq bir dəfə göründüyü tam ədədlər ardıcıllığı kimi müəyyən olunur. Permutasiyanın -ci elementi p_i kimi göstərilir, burada -dan n-1-ə qədər dəyişir. elementli iki permutasiya və -nin hasili başqa bir elementli permutasiya verəcək, elə ki, c_i = a_{b_i}. Qeyd edin ki, permutasiyaların hasili soldan assosiativdir, yəni əməliyyatlar soldan sağa aparılır.

Permutasiyalar arasında biz ikiqat permutasiyalara diqqət yetirəcəyik. İkiqat permutasiya iki qeyri-kəsişən artan ardıcıllığın birləşməsi kimi təqdim oluna bilər. Məsələn, (1, 3, 4, 0, 5, 2) permutasiyası iki artan ardıcıllığa bölünə bildiyi üçün ikiqat permutasiyadır: (1, 3, 4, 5) və . Əksinə, (5, 1, 3, 4, 0, 2) permutasiyası ikiqat permutasiya deyil.

Sizin tapşırığınız verilmiş permutasiyanı mümkün qədər az sayda ikiqat permutasiyanın hasilinə ayıran proqram yazmaqdır. Hasildə daxil olan ikiqat permutasiyaların sayı -dən artıq olmamalıdır.

Giriş

Birinci sətirdə (2 \leq n \leq 20000) ədədi verilir.

İkinci sətirdə başlanğıc permutasiya təyin edən ədəd verilir.

Çıxış

Əgər verilmiş məhdudiyyətlər daxilində həll tapmaq mümkün deyilsə, tək ədədini çıxışa verin.

Əgər həll mövcuddursa, birinci sətirdə — tapılmış həldə istifadə olunan ikiqat permutasiyaların sayını yazın, növbəti sətrin hər birində isə hasilin tərkibində olduğu ardıcıllıqla ikiqat permutasiyaların özlərini çap edin.

Nümunələr

Nümunə 1

Loading
Loading