Sətirlərin transformasiyası#5598

Sətirlərin transformasiyası

1 saniyə
128 meqabayt
Çətin

İki sətir və verilmişdir, hər biri yalnız və hərflərindən ibarətdir. Məqsədimiz sətirini sətirinə çevirməkdir. Bunun üçün aşağıdakı dəyişmə əməliyyatından istifadə edə bilərik: sətirində iki kəsişməyən və fraqmentlərini seçib onların yerlərini dəyişmək. sətirini bu dəyişmə əməliyyatları ilə sətirinə çevirmək mümkündürmü?

Giriş

Birinci sətir bir ədəd (2 \le n \le 10^6) – sətirlərin uzunluğunu göstərir. Sonra hər biri hərfdən ibarət olan iki sətir gəlir, hərflər yalnız və ya ola bilər. Birinci sətir -nu, ikinci sətir isə -ni təsvir edir. Sətirlərin fərqli olduğunu qəbul edin.

Çıxış

Əgər sətirini dəyişmə əməliyyatları ilə sətirinə çevirmək mümkündürsə, birinci sətirdə **TAK** (polyak dilində bəli) yazın, əks halda **NIE** (polyak dilində yox) yazın.

Əgər cavab müsbətdirsə və n \le 4000-dirsə, proqram dəyişmə əməliyyatlarının nümunə ardıcıllığını göstərməlidir. Birinci sətirdə əməliyyatların sayı (1 \leq m \leq 10^6) göstərilməlidir. Sonrakı sətirin hər biri iki tam ədəd a_i, b_i (1 \leq a_i, b_i \leq n-1) ehtiva edir – dəyişdirilən fraqmentlərin başlanğıc mövqelərini göstərir: a_i fraqmentinin başlanğıcını, b_i isə fraqmentinin başlanğıcını göstərir.

Əgər bir neçə həll varsa, onlardan hər hansı birini göstərin. Xüsusilə, əməliyyatların sayını minimallaşdırmağa ehtiyac yoxdur, yəni ədədini.

Nümunələr

Nümunə 1

Loading
Loading

Nümunə 2

Loading
Loading