Регулярные выражения — это гибкий способ определения шаблонов для поиска и замены в текстах. В данной задаче мы рассмотрим подмножество регулярных выражений, включающее только:
Одно из применений регулярных выражений — проверка, соответствует ли строка заданному шаблону. Например, чтобы проверить, является ли введённое целое неотрицательное число чётным, можно написать такое выражение (для простоты разрешим ведущие нули): (0|1|2|3|4|5|6|7|8|9)*(0|2|4|6|8)
От вас требуется решить более сложную задачу. Нужно определить, можно ли в целом неотрицательном числе переставить цифры так, чтобы число стало делиться на 6. Например, в числе 123 цифры нужным образом переставить можно, а в числе 31 — нельзя. Составьте регулярное выражение для выполнения такой проверки.
Входные данные отсутствуют.
Выведите одну строку длиной не более 3000 символов, содержащую искомое регулярное выражение. В строке разрешается использовать только перечисленные выше символы.
Правильность вашего регулярного выражения будет проверяться на различных целых числах в диапазоне от $$$0$$$ до $$$10^9$$$ включительно (без ведущих нулей). Для проверки будет использоваться функция regex_match из библиотеки regex языка C++ (компилятор GCC). Время проверки не должно превышать одной секунды (в случае превышения будет возвращаться вердикт 'Неправильный ответ').
Для информации: в первом тесте проверяется число 123, во втором — 31.
| Название |
|---|


