Олимпиадный тренинг

Задача . E. Огромный XOR


Даны два целых числа \(l\) и \(r\) в двоичном представлении. Пусть \(g(x, y)\) равняется побитовому исключающему ИЛИ всех целых чисел от \(x\) до \(y\) включительно (т. е. \(x \oplus (x+1) \oplus \dots \oplus (y-1) \oplus y\)). Определим \(f(l, r)\) как максимум по всем значениям \(g(x, y)\) при \(l \le x \le y \le r\).

Выведите \(f(l, r)\).

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

Первая строка входных данных содержит одна целое число \(n\) (\(1 \le n \le 10^6\)) — длину двоичного представления числа \(r\).

Вторая строка содержит двоичное представление числа \(l\) — строку из цифр \(0\) и \(1\) длины \(n\) (\(0 \le l < 2^n\)).

Третья строка содержит двоичное представление числа \(r\) — строку из цифр \(0\) и \(1\) длины \(n\) (\(0 \le r < 2^n\)).

Гарантируется, что \(l \le r\). Двоичное представление числа \(r\) не содержит лишних ведущих нулей (если \(r=0\), то его битовое представление состоит из одного нуля). Двоичное представление числа \(l\) дополнено ведущими нулями так, чтобы его длина была равна \(n\).

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

В единственной строке выведите значение \(f(l, r)\) в двоичном представлении без лишних ведущих нулей для данных \(l\) и \(r\).

Примечание

В примере из условия \(l=19\), \(r=122\). \(f(x,y)\) максимально и равно \(127\), например, при \(x=27\), \(y=100\).


Примеры
Входные данныеВыходные данные
1 7
0010011
1111010
1111111
2 4
1010
1101
1101

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
Python1
С++ Mingw-w644
Комментарий учителя