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

Трансформация строк

Трансформация строк

Имеются две строки u и v, состоящие из букв a и b. Наша цель - преобразовать строку uв v используя следующую операцию обмена: разрешается выбрать два непересекающихся фрагмента ab и ba в первой строке и поменять их местами. Можно ли u преобразовать в v используя некоторую последовательность операций обмена?

Входные данные

Первая строка содержит одно число n (2n106) - длину строк. Далее следуют две строки, каждая из которых состоит из n букв a и/или b. Первая строка описывает u, вторая строка описывает v. Считайте, что строки разные.

Выходные данные

В первой строке выведите слово TAK (польское да) или NIE (польское нет) если u можно преобразовать в v используя операции обмена.

Если ответ положительный и n4000, программа должна вывести пример последовательности операций обменов. В первой строке вывести количество операций m (1m106). Каждая из следующих m строк содержит два целых числа ai, bi (1ai, bin - 1) - позиции начальных букв фрагментов, которые обмениваются: ai указывает на позицию ab, bi указывает на позицию ba.

Если существует несколько решений, выведите любое из них. В частности, Вам не следует минимизировать количество операций, то есть число m.

Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 128 MiB
Giriş verilənləri #1
6
aabbaa
baaaab
Çıxış verilənləri #1
TAK
2
2 4
1 5
Giriş verilənləri #2
6
aaabbb
ababab
Çıxış verilənləri #2
NIE
Mənbə 2013 Петрозаводск Winter Training Camp, Январь 31, Задача A